Skip to content

Refactor shuttle into shuttle-core, shuttle-schedulers, shuttle-sync sub-crates#286

Open
jorajeev wants to merge 1 commit intoawslabs:mainfrom
jorajeev:module-reorg-pr1
Open

Refactor shuttle into shuttle-core, shuttle-schedulers, shuttle-sync sub-crates#286
jorajeev wants to merge 1 commit intoawslabs:mainfrom
jorajeev:module-reorg-pr1

Conversation

@jorajeev
Copy link
Copy Markdown
Member

@jorajeev jorajeev commented May 7, 2026

Extract the monolithic shuttle crate into a workspace of focused sub-crates:

  • shuttle-core: runtime, scheduler traits, execution engine, annotations, config, thread-local key, batch semaphore, and curated internal API surface
  • shuttle-schedulers: all scheduler implementations (random, PCT, DFS, round-robin, replay, annotation, URW, uncontrolled nondeterminism)
  • shuttle-sync: sync primitives (mutex, rwlock, condvar, barrier, once, atomics, mpsc), thread, rand, lazy_static, and future spawn/JoinHandle

Also adds shuttle-tests skeleton crate for future test migration and renames the wrappers/shuttle_sync package to shuttle-sync-wrapper to avoid name collision with the new shuttle-sync crate.

This PR only adds (well copies) code from existing crates, but doesn't wire in anything yet, so there should be no upstream impact. A follow-up PR will remove the code from the shuttle crate and switch over to using the new crates.

First step towards addressing #249


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Extract the monolithic shuttle crate into a workspace of focused sub-crates:

- shuttle-core: runtime, scheduler traits, execution engine, annotations,
  config, thread-local key, batch semaphore, and curated internal API surface
- shuttle-schedulers: all scheduler implementations (random, PCT, DFS,
  round-robin, replay, annotation, URW, uncontrolled nondeterminism)
- shuttle-sync: sync primitives (mutex, rwlock, condvar, barrier, once,
  atomics, mpsc), thread, rand, lazy_static, and future spawn/JoinHandle

Also adds shuttle-tests skeleton crate for future test migration and
renames the wrappers/shuttle_sync package to shuttle-sync-wrapper to
avoid name collision with the new shuttle-sync crate.

This PR only adds (well copies) code from existing crates, but doesn't wire in
anything yet, so there should be no upstream impact.  A follow-up PR will
remove the code from the shuttle/ crate and switch over to using the new crates.
@jorajeev jorajeev changed the title Add shuttle-core, shuttle-schedulers, shuttle-sync sub-crates Refactor shuttle into shuttle-core, shuttle-schedulers, shuttle-sync sub-crates May 7, 2026
@jorajeev jorajeev requested a review from sarsko May 7, 2026 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant