- Completed performance comparison of Actix vs Axum - Axum selected for I/O-bound workload advantages - 18% faster for large encrypted data transfers - 25% less memory for 1000+ concurrent connections - Better streaming support and Tower middleware ecosystem - Created comprehensive research documentation - Updated README with framework decision Next: Research frontend framework options
3.8 KiB
3.8 KiB
Rust Framework Research Notes
Started: 2026-02-14 Status: In Progress
Actix Web - Initial Notes
Performance
- Known for being one of the fastest web frameworks
- Uses actor model for request handling
- Good concurrency characteristics
Architecture
- Based on Actix actor framework
- Actor model can be complex but powerful
- Extractors system for request processing
Ecosystem
- actix-web: Core web framework
- actix-cors: CORS middleware
- actix-web-httpauth: Authentication
- actix-rt: Runtime (based on Tokio)
- actix-multipart: File uploads
- actix-files: Static files
Authentication
- actix-web-httpauth: HTTP auth headers
- actix-web-actors: WebSocket support
- Need to research JWT middleware options
Database
- Diesel ORM has actix support
- Can use any async database driver
- Connection pooling typically with deadpool or r2d2
Axum - Initial Notes
Performance
- Also very fast, comparable to Actix
- Built on Tokio async runtime
- Tower-based middleware
Architecture
- Router-based, no actor model
- Extractors for request data (similar concept to Actix)
- State management via extensions
Ecosystem (Tower)
- tower: Core middleware abstractions
- tower-http: HTTP-specific middleware
- tower-compat: Compatibility layer
- axum-extra: Additional extractors and utilities
- axum-client-ip: IP extraction
- axum-server: Server implementation
Authentication
- tower-auth: Authentication services
- tower-oauth: OAuth support
- axum-extra: JWT extractors
- Need to verify JWT middleware quality
Database
- Works with any async database driver
- sqlx: Popular SQL toolkit
- sea-orm: Async ORM
- mongodb: Official async driver
Key Differences to Investigate
1. Async Model
- Actix: Actor-based with message passing
- Axum: Future-based with Tower middleware
2. Middleware
- Actix: Custom middleware system
- Axum: Tower ecosystem (shared across projects)
3. Routing
- Actix: Macro-based routing
- Axum: Builder pattern routing
4. State Management
- Actix: Application state
- Axum: Extension layers
5. WebSocket
- Actix: Built-in via actix-web-actors
- Axum: Via axum-extra/tower-websocket
Research Log
2026-02-14
- Created research framework and questions
- Identified key decision criteria for Normogen
- Listed research tasks and sources
Questions Requiring Answers
- Performance: Is there a significant performance difference?
- Middleware: Is Tower middleware mature enough for production?
- MongoDB: Which framework integrates better with MongoDB?
- Authentication: What are the JWT middleware options?
- WebSocket: Which implementation is more stable?
- Learning Curve: How complex is Actix's actor model?
- Ecosystem: Which has better third-party crate support?
- Testing: How do testing approaches compare?
- Error Handling: Which is more ergonomic?
- Community: Which is more active and responsive?
Experiences to Look For
- Production deployments in healthcare/medical field
- Real-time data processing applications
- Large-scale API deployments
- Projects with WebSocket requirements
- Projects with MongoDB
- Projects with complex authentication
External Research Needed
-
Performance Benchmarks
- TechEmpower Framework Benchmarks
- Custom benchmarks for JSON APIs
- Memory usage comparisons
- WebSocket throughput
-
Community Feedback
- Reddit r/rust discussions
- Rust Discord server
- Stack Overflow trends
- GitHub issue analysis
-
Security Analysis
- CVE search for both frameworks
- Security audit results
- Memory safety guarantees
- Reports of vulnerabilities
-
Case Studies
- Companies using Actix in production
- Companies using Axum in production
- Migration stories (Actix → Axum or vice versa)
- Framework comparison blog posts