{"id":29889954,"url":"https://github.com/osiewicz/dice_box","last_synced_at":"2025-07-31T22:20:55.980Z","repository":{"id":196362395,"uuid":"695953177","full_name":"osiewicz/dice_box","owner":"osiewicz","description":"Experimental Cargo scheduler playground","archived":false,"fork":false,"pushed_at":"2023-11-15T16:19:32.000Z","size":117,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-11-16T14:45:40.112Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/osiewicz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-24T17:54:07.000Z","updated_at":"2023-11-09T19:34:01.000Z","dependencies_parsed_at":"2023-11-14T14:49:23.513Z","dependency_job_id":null,"html_url":"https://github.com/osiewicz/dice_box","commit_stats":null,"previous_names":["osiewicz/dice_box"],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/osiewicz/dice_box","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osiewicz%2Fdice_box","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osiewicz%2Fdice_box/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osiewicz%2Fdice_box/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osiewicz%2Fdice_box/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osiewicz","download_url":"https://codeload.github.com/osiewicz/dice_box/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osiewicz%2Fdice_box/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268126342,"owners_count":24200288,"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","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-07-31T22:20:51.836Z","updated_at":"2025-07-31T22:20:55.963Z","avatar_url":"https://github.com/osiewicz.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dice_box - a testing ground for better cargo scheduler\n\nDice_box allows one to check expected build time (makespan length) of a given Rust project with different Cargo scheduling algoritms.\nThat is mostly motivated by a want and need to test out different scheduling algorithms without having to run the builds (which should make iteration on new algorithms quicker).\nHowever, it should also give you an idea of an expected build speedup and scalability with different # of CPU cores.\n\n## Getting started\n\nTo run Dice_box on your project, you need 2 files:\n- Build timings of your project: `cargo +nightly build --timings=json`\n- Unit graph of your project: `cargo +nightly build --unit-graph`\nwhich can then be passed into a Dice_box:\n`dice_box timings.json unit_graph.json`\n\nIt is also possible to control parallelism of a build with `-n` option; this affects the results of Dice_box, not it's speed of execution (which should generally be quick-enough). It simulates a build of a given crate with N threads, where N defaults to 10.\nAnother option is `--timings`, which outputs timings similar to those of cargo (though it skips the timings table at the bottom and does not track the unlocked units/meta units).\n\n## Acknowledgements\nThe project contains significant parts of Rust's package manager (Cargo) with modifications, most notable one being a [DependencyQueue](https://github.com/rust-lang/cargo/blob/c031b0c69e2ca6202d6f13a04313841553ff42b9/src/cargo/util/dependency_queue.rs) and `--timings` support.\n## License\n\nThis project is licensed under either of\n\n * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or\n   https://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or\n   https://opensource.org/licenses/MIT)\n\nat your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosiewicz%2Fdice_box","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosiewicz%2Fdice_box","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosiewicz%2Fdice_box/lists"}