{"id":18041305,"url":"https://github.com/ligurio/molly","last_synced_at":"2025-07-11T16:33:44.361Z","repository":{"id":77678489,"uuid":"404247885","full_name":"ligurio/molly","owner":"ligurio","description":"Framework for distributed system's verification, with fault injection.","archived":false,"fork":false,"pushed_at":"2024-11-25T06:42:24.000Z","size":420,"stargazers_count":10,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-11T07:50:00.818Z","etag":null,"topics":["consistency","correctness","fault-injection","jepsen","linearizability","lua","serializable"],"latest_commit_sha":null,"homepage":"https://ligurio.github.io/molly/","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ligurio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-08T07:12:32.000Z","updated_at":"2025-04-05T10:36:56.000Z","dependencies_parsed_at":"2025-04-09T16:50:31.242Z","dependency_job_id":"9136994b-e5a4-4f06-b967-f58380c0b9aa","html_url":"https://github.com/ligurio/molly","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ligurio/molly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fmolly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fmolly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fmolly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fmolly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ligurio","download_url":"https://codeload.github.com/ligurio/molly/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ligurio%2Fmolly/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264851643,"owners_count":23673270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["consistency","correctness","fault-injection","jepsen","linearizability","lua","serializable"],"created_at":"2024-10-30T15:09:05.297Z","updated_at":"2025-07-11T16:33:44.312Z","avatar_url":"https://github.com/ligurio.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Static analysis](https://github.com/ligurio/molly/actions/workflows/check.yaml/badge.svg)](https://github.com/ligurio/molly/actions/workflows/check.yaml)\n[![Testing](https://github.com/ligurio/molly/actions/workflows/test.yaml/badge.svg)](https://github.com/ligurio/molly/actions/workflows/test.yaml)\n[![Coverage Status](https://coveralls.io/repos/github/ligurio/molly/badge.svg)](https://coveralls.io/github/ligurio/molly)\n[![Luarocks](https://img.shields.io/luarocks/v/ligurio/molly/scm-1)](https://luarocks.org/modules/ligurio/molly)\n\n## Molly\n\nis a framework for distributed systems verification, with fault injection.\n\n### Prerequisites\n\n- Lua interpreter: LuaJIT or LuaJIT-based is recommended.\n- [luafun](https://luafun.github.io/) - Lua functional library, built-in into\n  Tarantool.\n- [lua-cjson](https://github.com/mpx/lua-cjson) - Lua library for fast JSON\n  encoding and decoding, built-in into Tarantool.\n- (optional) Jepsen-compatible consistency checker. For example\n  [elle-cli](https://github.com/ligurio/elle-cli), based on Jepsen, Elle and\n  Knossos.\n\n### Installation\n\n- Download and setup Lua interpreter, [LuaJIT](https://luajit.org/install.html)\n  or LuaJIT-based is recommended (for example\n  [Tarantool](https://www.tarantool.io/download/)).\n- Install library using LuaRocks:\n\n```sh\n$ luarocks install --local molly\n```\n\nNOTE: Installation of modules `luafun` and `lua-cjson` is not required when\nTarantool is used, both modules are built-in there. Install them manually in\ncase of using LuaJIT:\n\n```sh\n$ make deps-runtime\n```\n\n### Documentation\n\nSee documentation in https://ligurio.github.io/molly/.\n\n### Examples\n\nSee also an examples in [test/examples/](/test/examples/) for SQLite database\nengine:\n- `sqlite-rw-register.lua` contains a simple test that concurrently runs `get`\n  and `set` operations on SQLite DB\n- `sqlite-list-append.lua` contains a simple test that concurrently runs `read`\n  and `append` operations on SQLite DB\n\nFor running examples you need installed an SQLite development package and\n[LuaRocks](https://github.com/luarocks/luarocks/wiki/Download).\n\n```sh\n$ sudo apt install -y sqlite3 libsqlite3-dev\n$ make deps\n$ make test-example\n```\n\nExample produces two files with history: `history.txt` and `history.json`. With\n[elle-cli](https://github.com/ligurio/elle-cli#usage) history can be checked\nfor consistency:\n\n```sh\n$ VER=0.1.8\n$ curl -O -L https://github.com/ligurio/elle-cli/releases/download/${VER}/elle-cli-bin-${VER}.zip\n$ unzip elle-cli-bin-${VER}.zip\n$ java -jar ./target/elle-cli-${VER}-standalone.jar -m elle-rw-register history.json\nhistory.json        true\n```\n\nSee tests that uses Molly library in https://github.com/ligurio/molly-tests.\n\n### Hacking\n\nFor developing `molly` you need to install: either LuaJIT or LuaJIT-based\nand [LuaRocks](https://github.com/luarocks/luarocks/wiki/Download).\n\n```sh\n$ make deps\n$ export PATH=$PATH:$(luarocks path --lr-bin)\n$ make check\n$ make test\n```\n\nYou are ready to make patches!\n\n### License\n\nCopyright © 2021-2024 [Sergey Bronnikov](https://bronevichok.ru/)\n\nDistributed under the ISC License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fligurio%2Fmolly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fligurio%2Fmolly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fligurio%2Fmolly/lists"}