{"id":16189318,"url":"https://github.com/caolan/mutiny","last_synced_at":"2025-03-19T03:30:50.595Z","repository":{"id":241192371,"uuid":"798315736","full_name":"caolan/mutiny","owner":"caolan","description":"Peer-to-peer web applications runtime","archived":false,"fork":false,"pushed_at":"2024-10-07T15:51:06.000Z","size":171,"stargazers_count":5,"open_issues_count":12,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-15T07:13:47.919Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caolan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-05-09T14:33:13.000Z","updated_at":"2024-11-13T12:22:38.000Z","dependencies_parsed_at":"2024-06-10T11:10:38.259Z","dependency_job_id":"1b400403-143c-45b1-9ec7-3b218d196072","html_url":"https://github.com/caolan/mutiny","commit_stats":null,"previous_names":["caolan/mutiny"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caolan%2Fmutiny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caolan%2Fmutiny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caolan%2Fmutiny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caolan%2Fmutiny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caolan","download_url":"https://codeload.github.com/caolan/mutiny/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243965774,"owners_count":20375917,"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":[],"created_at":"2024-10-10T07:35:01.809Z","updated_at":"2025-03-19T03:30:50.282Z","avatar_url":"https://github.com/caolan.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mutiny\n\nPeer-to-peer web applications runtime.\n\n## Structure\n\n* mutiny - application server and CLI interface to mutinyd\n* mutinyd - long-running process to manage networking, persistence, data sync\n\n## Usage\n\nFirst, run the daemon:\n\n```\ncd mutinyd\ncargo run\n```\n\nThen, run mutiny to check communication between daemon and CLI:\n\n```\n./mutiny/mutiny serve chat ./examples/chat\n```\n\n## Help\n\n### mutinyd\n\n```\nRuntime for peer-to-peer web apps\n\nUsage: mutinyd [OPTIONS]\n\nOptions:\n  -s, --socket \u003cSOCKET\u003e  Unix socket to bind to\n  -d, --data \u003cDATA\u003e      Local peer's data directory\n  -h, --help             Print help\n  -V, --version          Print version\n```\n\n## Running multiple instances\n\nFor testing, it can be useful to run multiple instances of `mutinyd`\non the same machine. To do so, set a custom socket path and data\ndirectory:\n\n```\ncd mutinyd\ncargo run -- --socket ./mutiny2.sock --data ./data2\n```\n\nYou can then run apps on your additional instance using the `--socket`\noption:\n\n```\n./mutiny/mutiny serve --socket ./mutinyd/mutiny2.sock chat ./examples/chat\n```\n\n## Examples\n\n### Ping\n\nDemonstrates communication between frontend, mutiny HTTP server, and\nmutinyd daemon.\n\nFirst, start the mutinyd daemon:\n\n```\ncd mutinyd\ncargo run\n```\n\nThen, serve the app:\n\n```\n./mutiny/mutiny serve ping examples/ping\n```\n\nAnd open the displayed URL in your browser. You should see your local peer\nID at the top of the page and a (potentially empty) list of discovered\npeers below. Repeating this process on another machine on your local\nnetwork will hopefully add a discovered peer to the list.\n\n### Chat\n\nDemonstrates peer-to-peer message delivery on the local network.\n\nFirst, start the mutinyd daemon:\n\n```\ncd mutinyd\ncargo run\n```\n\nThen, serve the app:\n\n```\n./mutiny/mutiny serve chat examples/chat\n```\n\nAnd open the displayed URL in your browser. Repeat this process on another\nmachine on your local network and it will hopefully add a discovered\npeer to the list on the left. Click on the peer to type messages to\neach another.\n\n## Tests\n\n### Integration\n\nIntegration tests can be found in the top `tests` directory - these\nexercise multiple programs and test the interation between them.\n\n```\ncd tests\ndeno test -A\n```\n\n### mutinyd\n\nUnit tests for the mutiny daemon:\n\n```\ncd mutinyd\ncargo test\n```\n\n### mutiny\n\nUnit tests for the mutiny server:\n\n```\ncd mutiny\ndeno test -A\n```\n\n## Documentation\n\n* [API documentation](./docs/api.md)\n* [Tutorial](./docs/tutorial.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaolan%2Fmutiny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaolan%2Fmutiny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaolan%2Fmutiny/lists"}