Skip to main content

Crate tideway

Crate tideway 

Source
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 OpenApi doc struct with less boilerplate.
openapi_merge
Merge multiple OpenApi derives 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
AppContextBuilder
Builder for AppContext with fluent API
Config
Main configuration for a Tideway application
ConfigBuilder
Builder for Config with environment variable and file support
CreatedResponse
201 Created response
ErrorContext
Error context for additional error information
ErrorInfo
Extended error information for enhanced error responses
ErrorResponse
Standard error response format for API errors.
ErrorWithContext
Error with attached context
FileConfig
File upload configuration
LoggingConfig
MessageResponse
Simple message response for operations that don’t return data.
NoContentResponse
204 No Content response
PaginatedData
Paginated data wrapper
PaginationMeta
Pagination metadata
PaginationQuery
Pagination query parameters
ServerConfig

Enums§

TidewayError
The main error type for Tideway applications

Traits§

RouteModule
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
JsonResponse
Convenience type alias for JSON responses
Multipart
Multipart form data extractor for file uploads
PathParams
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.