Changelog
All notable changes to RamAPI will be documented in this file.
The format is based on Keep a Changelog (opens in a new tab), and this project adheres to Semantic Versioning (opens in a new tab).
[Unreleased]
Planned
- WebSocket support
- Server-Sent Events (SSE)
- Built-in caching layer
- Advanced rate limiting strategies
- API versioning support
- Request/response compression middleware
- CSRF protection middleware
- GraphQL subscriptions
- gRPC streaming support
[0.1.0] - 2024-01-15 (Current)
Added
Core Features
- Ultra-fast routing system with O(1) static route lookup
- Zero-overhead middleware through pre-compilation
- Context-based API replacing traditional req/res pattern
- TypeScript-first design with full type safety
- HTTPError class for structured error handling
- Nested router support for modular application structure
Built-in Middleware
- Validation middleware with Zod schema integration
- CORS middleware with configurable options
- Rate limiting with in-memory store
- Logger middleware for request logging
- Body parsing (JSON, text, form data) - automatic
Authentication
- JWTService for token generation and verification
- authenticate() middleware for protected routes
- optionalAuthenticate() middleware for optional auth
- PasswordService for secure password hashing with bcrypt
- JWT payload validation and error handling
Observability
- OpenTelemetry integration for distributed tracing
- Flow tracking system for request visualization
- Performance profiling with timing measurements
- Metrics collection for monitoring
- Multiple exporters: Console, OTLP, Memory
- Jaeger integration for trace visualization
- Prometheus metrics endpoint support
Multi-Protocol Support
- GraphQL adapter for GraphQL APIs
- gRPC adapter for gRPC services
- Protocol manager for unified multi-protocol services
- Support for REST, GraphQL, and gRPC from single handler
HTTP Adapters
- Node.js HTTP adapter (default) - stable, production-ready
- uWebSockets.js adapter - extreme performance (350K+ req/s)
- Pluggable adapter system - bring your own HTTP implementation
Performance Optimizations
- Pre-compiled route patterns at registration time
- Cached dynamic route matches
- Zero-copy body parsing where possible
- Minimal allocations in hot paths
- Efficient header management
- Request pooling support
Developer Experience
- Comprehensive error messages
- Full TypeScript definitions
- Extensive JSDoc documentation
- Example applications included
- Detailed logging and debugging support
Documentation
- Complete getting started guides
- Core concepts documentation
- API reference for all features
- Real-world examples (Todo API, Auth, GraphQL, gRPC)
- Migration guides from Express/Fastify/Koa
- Production deployment guides
- Troubleshooting documentation
- 60+ comprehensive documentation files
Performance
- 400K+ requests/second with Node.js HTTP adapter (benchmarked)
- 0.2ms p50 latency under load
- 1ms p99 latency under load
- 10x faster than Express
- 4x faster than Fastify
- 3x faster than Koa
Breaking Changes
None (initial release)
Version History
Version Numbering
RamAPI follows semantic versioning:
- Major (1.0.0): Breaking API changes
- Minor (0.1.0): New features, backwards compatible
- Patch (0.1.1): Bug fixes, backwards compatible
Release Schedule
- Patch releases: As needed for bug fixes
- Minor releases: Every 1-2 months
- Major releases: When breaking changes are necessary
Upgrade Guide
From 0.0.x to 0.1.0
This is the initial stable release. If you were using pre-release versions:
- Update package:
npm install ramapi@latest-
Review breaking changes (if any apply to your version)
-
Run tests to ensure compatibility
-
Update observability config if using tracing:
// Before (example)
observability: {
tracing: true
}
// After
observability: {
tracing: {
enabled: true,
serviceName: 'my-service'
}
}Migration Notes
Express → RamAPI
Key changes when migrating from Express:
- Replace
req, reswithctx - Use
ctx.json()instead ofres.json() - Use
ctx.status()instead ofres.status() - Middleware uses
async/awaitpattern - Body parsing is automatic
See Migration Guide for complete details.
Fastify → RamAPI
Key changes when migrating from Fastify:
- Replace
request, replywithctx - Replace JSON Schema with Zod schemas
- Use
validate()middleware for validation - Hooks become middleware
See Migration Guide for complete details.
Koa → RamAPI
RamAPI is similar to Koa! Key changes:
- Add routing (Koa requires koa-router)
- Use
ctx.json()instead ofctx.body = {} - Body parsing is automatic (no koa-bodyparser needed)
- Built-in validation with Zod
See Migration Guide for complete details.
Deprecation Policy
When features are deprecated:
- Announced in changelog with deprecation notice
- Warning logged when deprecated feature is used
- Maintained for at least one major version
- Removed in next major version
Security Updates
Security vulnerabilities will be addressed in patch releases as quickly as possible.
To report a security issue, please email: security@ramapi.dev (or open a private security advisory on GitHub)
Contributors
Thank you to all contributors who have helped make RamAPI better!
See CONTRIBUTING.md for contribution guidelines.
Links
- GitHub Repository (opens in a new tab)
- NPM Package (opens in a new tab)
- Documentation
- Roadmap
- Contributing Guide
Last Updated: January 2024