Starfish is a high-performance, cross-platform asynchronous I/O and cooperative multitasking runtime for Rust. It is designed to provide efficient, non-blocking I/O operations and concurrency primitives using native OS facilities (io_uring on Linux, kqueue on macOS, IOCP on Windows).
This repository is a workspace containing several crates that make up the Starfish ecosystem:
- starfish-core: Core data structures and utilities used across the project.
- starfish-reactor: The heart of the runtime, providing the event loop, task scheduling, and cross-platform I/O reactor.
- starfish-http: HTTP protocol support.
- starfish-tls: TLS/SSL integration.
- starfish-epoch: Epoch-based memory reclamation for lock-free data structures.
- starfish-storage: Storage abstractions.
- starfish-crossbeam: Integration with Crossbeam tools.
- True Cross-Platform Async I/O: Leverages
io_uring(Linux),kqueue(macOS), andIOCP(Windows) for optimal performance. - Cooperative Multitasking: Efficient userspace task scheduling.
- Networking: Async TCP and UDP support.
- File I/O: Asynchronous file operations.
- Synchronization: Async mutexes, events, and other primitives.
To use the Starfish reactor in your project, add starfish-reactor to your dependencies.
You can run tests for the entire workspace:
cargo testRun benchmarks using:
cargo benchFor detailed examples and API usage, please refer to the starfish-reactor README.