{"id":31370139,"url":"https://github.com/younghakim7/arc_vec","last_synced_at":"2026-01-20T17:37:35.714Z","repository":{"id":304947389,"uuid":"1020648502","full_name":"YoungHaKim7/arc_vec","owner":"YoungHaKim7","description":"Arc Vector","archived":false,"fork":false,"pushed_at":"2025-08-27T02:27:21.000Z","size":460,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-27T10:57:01.976Z","etag":null,"topics":["parallel"],"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/YoungHaKim7.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,"zenodo":null}},"created_at":"2025-07-16T07:28:16.000Z","updated_at":"2025-08-27T02:27:24.000Z","dependencies_parsed_at":"2025-07-17T15:14:09.903Z","dependency_job_id":"9795832d-0b3f-4b16-a866-707c12029abb","html_url":"https://github.com/YoungHaKim7/arc_vec","commit_stats":null,"previous_names":["younghakim7/arc_vec"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/YoungHaKim7/arc_vec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoungHaKim7%2Farc_vec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoungHaKim7%2Farc_vec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoungHaKim7%2Farc_vec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoungHaKim7%2Farc_vec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YoungHaKim7","download_url":"https://codeload.github.com/YoungHaKim7/arc_vec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YoungHaKim7%2Farc_vec/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277275902,"owners_count":25791106,"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-09-27T02:00:08.978Z","response_time":73,"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":["parallel"],"created_at":"2025-09-27T18:59:21.464Z","updated_at":"2025-09-27T18:59:25.224Z","avatar_url":"https://github.com/YoungHaKim7.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg width=55px src=\"assets/arc_vec_logo.jpeg\" /\u003e\n\u003c/p\u003e\n\n# arc_vec\n\n[![Crates.io][crates-badge]][crates-url]\n[![MIT licensed][mit-badge]][mit-url]\n[![Rust_Documentation][rust-doc-badge]][doc-url]\n![Rust Stable](https://img.shields.io/badge/rustc-stable-blue.svg)\n![Rust 1.88+](https://img.shields.io/badge/rustc-1.88+-blue.svg)\n\n[crates-badge]: https://img.shields.io/crates/v/arc_vec.svg\n[crates-url]: https://crates.io/crates/arc_vec\n[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg\n[mit-url]: https://github.com/tokio-rs/tokio/blob/master/LICENSE\n[rust-doc-badge]: https://img.shields.io/badge/rust-documentation-blue\n[doc-url]: https://docs.rs/arc_vec/latest/arc_vec/\n\n- Arc Vector\n  - Experimental work to run vectors in parallel\n\n\n```rust\n// Consider Arc\u003c[T]\u003e over Vec \u003cT\u003e\n// Arc\u003c[T]\u003e\nuse arc_vec::alloc::arc_vec::ArcVec;\nlet my_num_arcvec_init: ArcVec\u003ci32\u003e = ArcVec::new();\n\n```\n\n# dependencies\n\n```toml\n[dependencies]\narc_vec = \"0\"\n\n```\n\n# example\n\n- `arcnew`\n\n```rust\nuse arc_vec::alloc::arc_vec::ArcVec;\n\nfn main() {\n    let my_arc_vec = ArcVec::new();\n    my_arc_vec.push(10);\n    println!(\"arc_vec int push : {}\", my_arc_vec);\n}\n```\n\n- macro\n\n```rust\nuse arc_vec::arc_vec;\n\nfn main() {\n    let arc_test = arc_vec!(2);\n    println!(\"arc_vec : {}\", arc_test);\n}\n```\n\n# 성능 평가 benches\n- [criterion.rs](https://github.com/bheisler/criterion.rs) - Statistics-driven benchmarking library for Rust \n\n# `cargo bench`\n\n|rayon\u003cbr\u003eparallel_sort()|vs|basic sort()|\n|-|-|-|\n|\u003cimg width=300px src=\"assets/benches/criterion/para_sort_final.png\" /\u003e|vs|\u003cimg  width=300px src=\"assets/benches/criterion/sort_basic.png\" /\u003e|\n|-|Estimate|-|\n|0.0162498|R²|0.0025004|\n|17.870 ms|Mean|27.310 ms|\n|267.86 µs|Std. Dev.|176.25 µs|\n|17.818 ms|Median|27.226 ms|\n|299.22 µs|MAD|73.193 µs|\n\n- Understanding this report:\n  - The plot on the left displays the average time per iteration for this benchmark. The shaded region shows the estimated probability of an iteration taking a certain amount of time, while the line shows the mean. Click on the plot for a larger view showing the outliers.\n\n  - The plot on the right shows the linear regression calculated from the measurements. Each point represents a sample, though here it shows the total time for the sample rather than time per iteration. The line is the line of best fit for these measurements.\n\n- See the [documentation](https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics) for more details on the additional statistics.\n\n### rayon_parallel_sort \n\n\u003cimg src=\"assets/benches/criterion/arcvec__parallel_sort/report/pdf.svg\"\u003e\n\n### basic sort\n\u003cimg src=\"assets/benches/criterion/arcvec__sort/report/pdf.svg\"/\u003e\n\n\n\n\n\n- example\n\n```bash\n$ cargo r --example sort_comparison\n\nArray size: 1_000_000\nStandard sort took: 511.425875ms\nParallel sort took: 2.315417ms\n\n```\n\n# Test 환경\n- `rustc --version --verbose`\n```\n$ rustc --version --verbose\nrustc 1.88.0 (6b00bc388 2025-06-23)\nbinary: rustc\ncommit-hash: 6b00bc3880198600130e1cf62b8f8a93494488cc\ncommit-date: 2025-06-23\nhost: x86_64-unknown-linux-gnu\nrelease: 1.88.0\nLLVM version: 20.1.5\n\n```\n\n- [fastfetch](https://github.com/fastfetch-cli/fastfetch)\n\n```\n\nOS: Ubuntu 24.04.2 LTS x86_64\nKernel: Linux 6.14.0-24-generic\nShell: fish 3.7.1\nDE: GNOME 46.0\nWM: Mutter (X11)\nTerminal: GNOME Terminal 3.52.0\nCPU: 13th Gen Intel(R) Core(TM) i5-136z\nGPU 1: NVIDIA GeForce RTX 3060 Ti Lite\nGPU 2: Intel UHD Graphics 770 @ 1.55 G\nMemory: 6.93 GiB / 94.09 GiB \n\n```\n\n# Todo\n\n- [x] sort fn\n- [ ] reverse fn\n- [ ] append string\n- [ ] benches\n  - [ ] ArcVec VS Vec::new\n  - [x] Parallel sort VS Basic Sort\n- [ ] Docs\n  - [ ] lib.rs_rayon내용추가\n  - [ ] concurrency VS parallelism 차이점\n\n## Similar project\n- [(rc-vec)RcVec](https://crates.io/crates/rc-vec) based on Rc and can be converted from Rc without allocation\n  - Repository[(github.com/A4-Tacks/rc-vec-rs)](https://github.com/A4-Tacks/rc-vec-rs)\n\n## License\n\nThis project is licensed under the [MIT license].\n\n[MIT license]: https://github.com/YoungHaKim7/arc_vec/blob/main/LICENSE\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in ArcVec by you, shall be licensed as MIT, without any additional\nterms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyounghakim7%2Farc_vec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyounghakim7%2Farc_vec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyounghakim7%2Farc_vec/lists"}