fast
A zero-dependency, high-performance async runtime for Rust built on io_uring and direct syscalls.
Overview
fast is an experimental async runtime designed as a safe, testable, and efficient alternative to async-std. It leverages Linux's io_uring for high-performance I/O operations and implements core async primitives without external dependencies.
Status: Early Alpha - API subject to change
Features
Implemented
- Sync Primitives: Channels, duplex communication, locks, mutexes, once cells, queues, ring buffers, slabs
- Runtime Core: Thread-local runtime management, task spawning infrastructure
- Linux Integration: io_uring bindings, syscall wrappers for x86_64 and aarch64
- Networking: TCP/UDP traits and Linux-specific implementations
- Filesystem: Basic file operations framework
Architecture
#![no_std] - Works without standard library
- Zero external runtime dependencies (only build dependencies)
- Platform-specific optimizations via conditional compilation
- Memory-safe abstractions over unsafe system interfaces
Usage
// Coming soon - API still stabilizing
Current Limitations
- Linux-only (io_uring requirement)
- x86_64 and aarch64 architectures only
- Many APIs still contain
todo!() implementations
- No stable API guarantees
TODO
Immediate Priority
Core Runtime
Networking
Filesystem
Performance
Future Ideas
Platform Expansion
- Windows IOCP: Add Windows support with I/O Completion Ports
- macOS/BSD kqueue: Extend to other Unix platforms
- WASM Support: Explore browser/WASI compatibility
Advanced Features
- io_uring Extensions:
- Multi-shot accept/recv
- Registered buffers/files
- Kernel polling mode
- Linked operations
- Structured Concurrency: Nursery/scope-based task management
- Tracing Integration: Built-in async-aware diagnostics
- HTTP/3 Support: QUIC protocol implementation
- gRPC: High-performance RPC framework
Ecosystem Integration
- Compatibility Layer: async-std/tokio compatibility traits
- Async Traits: Native async trait support when stabilized
- Macro-free API: Explore builder patterns vs procedural macros
- Plugin System: Dynamic loading of protocol handlers
Experimental Ideas
- Kernel Bypass: DPDK/XDP for ultra-low latency networking
- GPU Offload: Async GPU computation scheduling
- Distributed Runtime: Cluster-aware task scheduling
- Real-time Support: Deadline-based scheduling
- Memory Safety: Formal verification of unsafe blocks
Contributing
See CONTRIBUTING.md for guidelines.
License
MIT License - see LICENSE for details.
Acknowledgments
Built with ❤️ by Sol Midnight and Angelite, Inc.