{"id":15295122,"url":"https://github.com/johnmurray/busan","last_synced_at":"2025-04-13T02:13:25.385Z","repository":{"id":65064704,"uuid":"570742577","full_name":"JohnMurray/busan","owner":"JohnMurray","description":"An actor implementation in Rust","archived":false,"fork":false,"pushed_at":"2024-07-14T18:46:48.000Z","size":328,"stargazers_count":7,"open_issues_count":16,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-13T02:13:22.674Z","etag":null,"topics":["actor-model","actor-system","actors","rust","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JohnMurray.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":"2022-11-26T01:31:58.000Z","updated_at":"2024-10-14T18:24:44.000Z","dependencies_parsed_at":"2024-05-13T20:47:33.012Z","dependency_job_id":"d10ac797-0f23-405d-a324-891b89147ee3","html_url":"https://github.com/JohnMurray/busan","commit_stats":{"total_commits":64,"total_committers":2,"mean_commits":32.0,"dds":0.015625,"last_synced_commit":"f751a59a2fe6d0445300ffc9ea11bff3eee00f53"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnMurray%2Fbusan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnMurray%2Fbusan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnMurray%2Fbusan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnMurray%2Fbusan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnMurray","download_url":"https://codeload.github.com/JohnMurray/busan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654095,"owners_count":21140236,"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":["actor-model","actor-system","actors","rust","rust-lang"],"created_at":"2024-09-30T17:08:42.114Z","updated_at":"2025-04-13T02:13:25.368Z","avatar_url":"https://github.com/JohnMurray.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# busan (부산)\n\n[![Crates.io][crates-badge]][crates-url]\n[![Build Status][actions-badge]][actions-url]\n[![GNU GPL v3 licensed][gpl-badge]][gpl-url]\n[![Decision log][decision-log-badge]][decision-log-url]\n[![Change Log][change-log-badge]][change-log-url]\n\n[crates-badge]: https://img.shields.io/crates/v/busan.svg\n[crates-url]: https://crates.io/crates/busan\n[actions-badge]: https://github.com/JohnMurray/busan/actions/workflows/ci.yaml/badge.svg\n[actions-url]: https://github.com/JohnMurray/busan/actions/workflows/ci.yaml\n[gpl-badge]: https://img.shields.io/badge/license-GPL-blue.svg\n[gpl-url]: https://github.com/JohnMurray/busan/blob/main/LICENSE\n[decision-log-badge]: https://img.shields.io/badge/%F0%9F%93%83-decision%20log-blue\n[decision-log-url]: https://github.com/JohnMurray/busan/tree/main/decisions\n[change-log-badge]: https://img.shields.io/badge/%F0%9F%93%83-change%20log-blue\n[change-log-url]: https://github.com/JohnMurray/busan/blob/main/CHANGELOG.md\n\nBusan is an [actor][wikipedia_actor] implementation for Rust that is currently under heavy\ndevelopment and is experimental in nature. It is not yet ready for production use, although\nit usable to build hobby/personal projects on (with a lot of effort).\n\n[wikipedia_actor]: https://en.wikipedia.org/wiki/Actor_model\n\n## Documentation\n\nThe project lacks comprehensive documentation or getting started guides at this time. The best\nsource of documentation will be found in the rustdocs at [docs.rs][docs-rs-busan] and in the\n[examples folder][examples-url].\n\nIf you are interested in additional context behind the project or technical decisions, then the\n[decision logs][decision-log-url] may be of particular interest.\n\n[docs-rs-busan]: https://docs.rs/busan/latest/busan/\n[examples-url]: https://github.com/JohnMurray/busan/blob/main/examples/\n\n### Examples\n\nYou can run the examples by specifying the workspace (directory) name, prefixed with `examples_`.\n\n```shell\n# Run the current examples\n$ cargo run -p examples_ping_pong\n$ cargo run -p examples_hello_world\n\n# Trick the cargo run command into listing our example workspaces\n$ cargo run -p 2\u003e\u00261 | grep 'examples_'\n```\n\n## Roadmap\n\nThe roadmap is constantly evolving, so I don't expect plans to be super detailed outside\nthe short-term milestones. I'm currently tracking my work in [NOTES.md][notes] and is\nconstantly evolving.\n\n- ~~[`0.2.0`][m1] - Spawn actors, send and receive messages~~ (shipped)\n- `0.3.0` - Core features - lifecycle management, actor/work scheduler, etc.\n- `0.4.0` - Ergonomics \u0026 Utilities (routers, timers, behaviors, etc)\n- `0.4.0` - Observability, test support, docs\n\n[m1]: https://github.com/JohnMurray/busan/milestone/1\n[notes]: https://github.com/JohnMurray/busan/blob/main/NOTES.md\n\nBeyond this, I don't have any defined plans. Things on my mind include:\n\n- Remote facilities - remote routing/messaging, clustering, remote actor spawning, etc.\n- gRPC bridging (exposing a gRPC interface to communicate with actors)\n- Network bridging - a generic take on gRPC bridging that allows for arbitrary network protocols\n- DSL for one-off actor systems\n- State snapshotting/journaling, actor migration\n- Async IO and/or async/await support and/or Tower integration\n\nIt's not clear how quickly progress will be made against these milestones and ideas as this is\nalso a personal experiment in how I think about and manage my open-source projects.\n\n## Contributing\n\nI'm not currently considering code contributions at the moment as the project is still in its\ninfancy, and I'm still working out the design. However, I am open to suggestions and feedback. If\nyou have any ideas or suggestions, please start a discussion. I'd also be interested in hearing\nabout real-world use-cases that are not well-supported by other Rust-based actor implementations.\n\n## Licensing\n\nThe project is currently licensed under the [GNU GPL v3][license] license. My intention is to\nensure all early work and development on this project is kept open. I may revisit this if there\nis significant commercial interest.\n\n[license]: https://github.com/JohnMurray/busan/blob/main/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnmurray%2Fbusan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnmurray%2Fbusan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnmurray%2Fbusan/lists"}