A project that drastically speeds up server development. Comparable to Django for Python.
Built to work for all common serverless platforms.
- Abstractions
- Multiple backends - AWS, Azure, Ktor
- Generates Terraform for AWS
- Database Abstraction backed by KotlinX Serialization
- Supports MongoDB, partial Postgres, local JSON storage
- Also supports a RAM mock for unit testing
- Cache Abstraction
- Supports Redis, Memcached, DynamoDB
- Also supports a RAM mock for unit testing
- Email Abstraction
- Supports SMTP, Amazon SES
- Also supports a console mock for testing
- SMS Abstraction
- Supports Twilio and a console mock for testing
- File System Abstraction
- Supports Local, AWS S3, and Azure Blob Storage
- Multiple backends - AWS, Azure, Ktor
- Easy Server Definitions
- Simple HTTP Endpoint Definition
- Typed API Endpoints
- Typed input, output, and user
- Supports many content types, including JSON, BSON, CBOR, CSV, FormData
- Event-Based Websocket Definition
- Scheduled tasks
- Asynchronous tasks
- Permission rules for users accessing databases
- Pre-built Route Sets
- REST endpoints with permissions
- Authentication endpoints
- Email Magic Links
- Email PIN
- SMS PIN
- Password
- OAuth for Google, Apple, and GitHub
- Server management tools
- Built-in database admin and endpoint tester
- Health check page
- Built-in OpenAPI documentation
- Automatically generated documentation for API
- Automatically generated SDKs for TypeScript and Kotlin
- Client Documentation
- Set Up
- Settings
- Endpoints
- Serialization
- Database
- Cache
- Files
- Authentication
- Typed Endpoints
- Automatic REST Endpoints
- Tasks
- Websockets (todo)
- Meta
- Improved per-environment Terraform generation
- Key-path ordering and grouping
- Additional Documentation
- Tutorial
- Complete Azure Support
- CosmosDB (using MongoDB interface)
- Http Endpoints
- WebSockets
- Scheduled Tasks
- Asynchronous Tasks
- Generate Terraform
- DynamoDB as Database Support - DynamoDB is unfortunately far too limited to fit our current abstraction. If scan is able to be done in reverse in the future, this may become possible.