Expand description
Tideway - A batteries-included Rust web framework
Tideway is built on top of Axum and Tokio, providing opinionated defaults for building SaaS applications quickly while maintaining performance and flexibility.
§Features
- HTTP: Axum-based routing with sensible defaults
- Authentication: JWT-based auth with pluggable providers
- Database: SeaORM integration with migrations
- Health Checks: Built-in health check system
- OpenAPI: Automatic API documentation with utoipa
- Webhooks: Webhook handling with verification and idempotency
- Testing: Alba-style HTTP testing utilities
§Quick Start
ⓘ
use tideway::{App, ConfigBuilder, init_tracing};
#[tokio::main]
async fn main() {
// Initialize logging
init_tracing();
// Create and configure app
let config = ConfigBuilder::new()
.from_env()
.build()
.unwrap();
let app = App::with_config(config);
// Start server
app.serve().await.unwrap();
}Re-exports§
pub use testing::TestFactory;pub use testing::TestUser;pub use testing::fake;pub use compression::CompressionConfig;pub use compression::CompressionConfigBuilder;pub use cors::CorsConfig;pub use cors::CorsConfigBuilder;pub use dev::DevConfig;pub use dev::DevConfigBuilder;pub use health::ComponentHealth;pub use health::HealthCheck;pub use health::HealthChecker;pub use health::HealthStatus;pub use ratelimit::RateLimitConfig;pub use ratelimit::RateLimitConfigBuilder;pub use request_logging::RequestLoggingConfig;pub use request_logging::RequestLoggingConfigBuilder;pub use security::SecurityConfig;pub use security::SecurityConfigBuilder;pub use timeout::TimeoutConfig;pub use timeout::TimeoutConfigBuilder;pub use database::SeaOrmPool;pub use traits::database::DatabaseConnection;pub use traits::database::DatabasePool;
Modules§
- compression
- Response compression middleware.
- cors
- Cross-Origin Resource Sharing (CORS) middleware.
- database
- Database connection pooling and management.
- dev
- Development mode utilities for Tideway applications
- ensure
- health
- openapi
- OpenAPI/Swagger documentation support.
- prelude
- Curated, stable imports for common Tideway usage.
- ratelimit
- Rate limiting middleware.
- request_
logging - Request and response logging middleware.
- security
- Security headers middleware.
- testing
- Testing utilities for Tideway applications
- timeout
- Request timeout middleware.
- traits
- Trait definitions for extensible components
- webhooks
- Webhook handling utilities.
Macros§
- ensure
- Return early with a TidewayError if a condition is not met.
- module
- openapi_
components - Define an OpenAPI components-only doc struct.
- openapi_
doc - Define a lightweight
OpenApidoc struct with less boilerplate. - openapi_
merge - Merge multiple
OpenApiderives into a single spec. - openapi_
merge_ module - Merge multiple docs from the same module without repeating the module path.
- openapi_
path - Helper macro to reduce boilerplate for common response patterns
- register_
modules - Register multiple modules with a Tideway
App. - register_
optional_ modules - Register optional modules with a Tideway
App. - test_db
- Helper macro to create a test database for each test
Structs§
- ApiResponse
- Standard JSON response wrapper
- App
- Main application structure for Tideway
- AppBuilder
- Builder for App with fluent API
- AppContext
- Application context for dependency injection and shared state
- AppContext
Builder - Builder for AppContext with fluent API
- Config
- Main configuration for a Tideway application
- Config
Builder - Builder for Config with environment variable and file support
- Created
Response - 201 Created response
- Error
Context - Error context for additional error information
- Error
Info - Extended error information for enhanced error responses
- Error
Response - Standard error response format for API errors.
- Error
With Context - Error with attached context
- File
Config - File upload configuration
- Logging
Config - Message
Response - Simple message response for operations that don’t return data.
- NoContent
Response - 204 No Content response
- Paginated
Data - Paginated data wrapper
- Pagination
Meta - Pagination metadata
- Pagination
Query - Pagination query parameters
- Server
Config
Enums§
- Tideway
Error - The main error type for Tideway applications
Traits§
- Route
Module - Trait for composable route modules
Functions§
- init_
tracing - Initialize tracing/logging with sensible defaults
- init_
tracing_ with_ config - Initialize tracing with a custom configuration
Type Aliases§
- Form
- Form data extractor
- Json
Response - Convenience type alias for JSON responses
- Multipart
- Multipart form data extractor for file uploads
- Path
Params - Path parameter extractor
- Query
- Query parameter extractor with validation support
- Result
- Result type alias for Tideway handlers
Attribute Macros§
- api
- Define an HTTP handler with automatic OpenAPI documentation.