{"id":21004785,"url":"https://github.com/halfzebra/rust-transaction-engine","last_synced_at":"2026-04-20T20:37:11.345Z","repository":{"id":73688846,"uuid":"497877275","full_name":"halfzebra/rust-transaction-engine","owner":"halfzebra","description":"🔄 Simple transaction engine as a CLI written in Rust","archived":false,"fork":false,"pushed_at":"2022-06-02T19:02:15.000Z","size":24,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-20T10:14:04.170Z","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/halfzebra.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":"2022-05-30T09:37:10.000Z","updated_at":"2023-03-10T10:28:54.000Z","dependencies_parsed_at":"2023-02-24T01:15:51.514Z","dependency_job_id":null,"html_url":"https://github.com/halfzebra/rust-transaction-engine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halfzebra%2Frust-transaction-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halfzebra%2Frust-transaction-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halfzebra%2Frust-transaction-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halfzebra%2Frust-transaction-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/halfzebra","download_url":"https://codeload.github.com/halfzebra/rust-transaction-engine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243419563,"owners_count":20287911,"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-11-19T08:37:54.230Z","updated_at":"2025-12-28T00:13:04.909Z","avatar_url":"https://github.com/halfzebra.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔄 rust-transaction-engine\n\n## Usage\n\n```bash\ncargo run -- examples/basic.csv\n# to output into accounts.csv file\ncargo run -- examples/basic.csv \u003e accounts.csv\n```\n\n## Possible optimisations\n\nStreaming the CSV is a bit pointless, since we are doing stateful event stream processing.\nThis means that we actually need to access transactions retrospectively, so storing them in an indexed format in some persisted storage is a must.\n\nAs an option for storage we could use SQLite or other embedded KV solutions, in a real project it's probably better to use a DB.\n\n## Assumptions\n\n- It's only possible to `Dispute` the `Withdrawal` and `Deposit`\n- It's impossible to `Withdraw` negative amount\n- It's impossible to `Deposit` negative amount\n- `Withdraw`al of larger sum, than available does not process and is ignored\n- Locked account does not respond to any further transactions","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalfzebra%2Frust-transaction-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalfzebra%2Frust-transaction-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalfzebra%2Frust-transaction-engine/lists"}