Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build a concurrency-heavy Rust app — EITHER multi-threaded (e.g. a parallel file/data processor sharing state via Arc<Mutex<T>> and coordinating with channels) OR async (e.g. a small concurrent web scraper or HTTP service on Tokio with many .await-ed tasks). Demonstrate FEARLESS CONCURRENCY: the compiler proves there are no data races (Send/Sync honored). Use the right smart pointers (Arc for sharing across threads, not Rc), handle errors with Result, and produce an optimized release build (cargo build --release). Explain why your sharing/coordination choice is correct.
Threads or async tasks share state safely (Arc<Mutex>/channels, or Tokio); compiles with no data-race workarounds; Send/Sync respected.
Correct pointer choice (Arc not Rc across threads; RefCell only single-thread); no deadlocks; errors via Result.
If async: a runtime (Tokio) drives lazy futures; tasks are actually concurrent; .await used correctly.
An optimized release build; can justify why the concurrency model and sharing primitives are correct.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A concurrent or async Rust application ## Goal Build a concurrency-heavy Rust app — EITHER multi-threaded (e.g. a parallel file/data processor sharing state via Arc<Mutex<T>> and coordinating with channels) OR async (e.g. a small concurrent web scraper or HTTP service on Tokio with many .await-ed tasks). Demonstrate FEARLESS CONCURRENCY: the compiler proves there are no data races (Send/Sync honored). Use the right smart pointers (Arc for sharing across threads, not Rc), handle errors with Result, and produce an optimized release build (cargo build --release). Explain why your sharing/coordination choice is correct. ## Acceptance criteria - [ ] Fearless concurrency: Threads or async tasks share state safely (Arc<Mutex>/channels, or Tokio); compiles with no data-race workarounds; Send/Sync respected. - [ ] Smart pointers & correctness: Correct pointer choice (Arc not Rc across threads; RefCell only single-thread); no deadlocks; errors via Result. - [ ] Async/runtime (if async): If async: a runtime (Tokio) drives lazy futures; tasks are actually concurrent; .await used correctly. - [ ] Release & reasoning: An optimized release build; can justify why the concurrency model and sharing primitives are correct. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.