Expand description
Postrust Core - PostgREST-compatible REST API for PostgreSQL in Rust.
This crate provides the core functionality for Postrust, a serverless alternative to PostgREST written in Rust.
§Architecture
The request processing pipeline:
- API Request Parsing (
api_request) - Parse HTTP request into domain types - Schema Cache (
schema_cache) - PostgreSQL metadata for validation - Query Planning (
plan) - Convert request to execution plan - SQL Generation (
query) - Generate parameterized SQL - Response Formatting - Format results for HTTP response
§Example
ⓘ
use postrust_core::{ApiRequest, SchemaCache, create_action_plan};
// Parse HTTP request
let request = parse_request(&http_request, "public", &schemas)?;
// Create execution plan
let plan = create_action_plan(&request, &schema_cache)?;
// Generate SQL
let (sql, params) = build_query(&plan)?;Re-exports§
pub use api_request::parse_request;pub use api_request::Action;pub use api_request::ApiRequest;pub use api_request::DbAction;pub use api_request::Filter;pub use api_request::LogicTree;pub use api_request::MediaType;pub use api_request::Mutation;pub use api_request::Operation;pub use api_request::Payload;pub use api_request::Preferences;pub use api_request::PreferRepresentation;pub use api_request::QualifiedIdentifier;pub use api_request::QueryParams;pub use api_request::Range;pub use api_request::Resource;pub use api_request::SelectItem;pub use config::AppConfig;pub use config::IsolationLevel;pub use config::LogLevel;pub use error::Error;pub use error::Result;pub use plan::create_action_plan;pub use plan::ActionPlan;pub use plan::CallPlan;pub use plan::DbActionPlan;pub use plan::MutatePlan;pub use plan::ReadPlan;pub use schema_cache::Column;pub use schema_cache::Relationship;pub use schema_cache::Routine;pub use schema_cache::SchemaCache;pub use schema_cache::SchemaCacheRef;pub use schema_cache::Table;
Modules§
- api_
request - API request parsing module.
- config
- Configuration for Postrust.
- error
- Error types for Postrust.
- plan
- Query planning module.
- prelude
- Prelude for common imports.
- query
- SQL query generation from execution plans.
- schema_
cache - PostgreSQL schema introspection and caching.