{"id":17358274,"url":"https://github.com/sklose/disrustor","last_synced_at":"2025-05-07T15:07:53.246Z","repository":{"id":57619889,"uuid":"199329684","full_name":"sklose/disrustor","owner":"sklose","description":"A port of the LMAX Disruptor to Rust","archived":false,"fork":false,"pushed_at":"2023-09-05T12:48:35.000Z","size":90,"stargazers_count":106,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-07T15:07:44.955Z","etag":null,"topics":["disruptor","lmax","threading"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sklose.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2019-07-28T19:39:25.000Z","updated_at":"2025-05-03T14:02:59.000Z","dependencies_parsed_at":"2025-01-02T09:11:52.396Z","dependency_job_id":"ca7c5a5d-116e-4720-8e91-ce813654e311","html_url":"https://github.com/sklose/disrustor","commit_stats":{"total_commits":60,"total_committers":1,"mean_commits":60.0,"dds":0.0,"last_synced_commit":"e6a3e9226aa262fd916bb476b1c9c1d33b36d141"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sklose%2Fdisrustor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sklose%2Fdisrustor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sklose%2Fdisrustor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sklose%2Fdisrustor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sklose","download_url":"https://codeload.github.com/sklose/disrustor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252902614,"owners_count":21822261,"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":["disruptor","lmax","threading"],"created_at":"2024-10-15T19:04:55.418Z","updated_at":"2025-05-07T15:07:53.219Z","avatar_url":"https://github.com/sklose.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CI](https://github.com/sklose/disrustor/actions/workflows/ci.yaml/badge.svg)](https://github.com/sklose/disrustor/actions/workflows/ci.yaml)\n[![crates.io](https://img.shields.io/crates/v/disrustor.svg)](https://crates.io/crates/disrustor)\n[![codecov](https://codecov.io/gh/sklose/disrustor/branch/master/graph/badge.svg?token=UE3RML6O57)](https://codecov.io/gh/sklose/disrustor)\n\n# Disrustor\n\nThis project is a port of the [LMAX Disruptor](https://lmax-exchange.github.io/disruptor/) to Rust.\n\n# Features\n\n- [x] Single Producer\n- [x] Batch Consumer\n- [X] Blocking Wait Strategy\n- [X] Spinning Wait Strategy\n- [ ] Multi Producer\n- [ ] Worker Pools\n- [X] DSL\n- [ ] Documentation\n\n# Benchmarks\n\nPreliminary benchmark results for sending i32-sized messages from a producer to a consumer.\n\n| Name | Batch Size | Throughput |\n|------|------------|------------|\n| mpsc channel | 1\u003csup\u003e[1](#mpsc-footnote)\u003c/sup\u003e | 34.894 Melem/s |\n| disrustor spinning | 1 | 38.260 Melem/s |\n| disrustor spinning | 10 | 941.39 Melem/s |\n| disrustor spinning | 50 | 940.77 Melem/s |\n| disrustor spinning | 100 | 942.68 Melem/s |\n| disrustor spinning | 1000 | 942.02 Melem/s |\n| disrustor spinning | 2000 | 940.75 Melem/s |\n| disrustor spinning | 4000 | 938.44 Melem/s |\n| disrustor blocking | 1 | 7.0191 Melem/s |\n| disrustor blocking | 10 | 85.386 Melem/s |\n| disrustor blocking | 50 | 997.89 Melem/s |\n| disrustor blocking | 100 | 998.97 Melem/s |\n| disrustor blocking | 1000 | 1.0032 Gelem/s |\n| disrustor blocking | 2000 | 999.67 Melem/s |\n| disrustor blocking | 4000 | 999.15 Melem/s |\n\n\u003ca name=\"mpsc-footnote\"\u003e1\u003c/a\u003e: mpsc channels do not support batching\n\n# Related Work\n\n- [Turbine](https://github.com/polyfractal/Turbine)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsklose%2Fdisrustor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsklose%2Fdisrustor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsklose%2Fdisrustor/lists"}