Skip to main content

Crate postrust_core

Crate postrust_core 

Source
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:

  1. API Request Parsing (api_request) - Parse HTTP request into domain types
  2. Schema Cache (schema_cache) - PostgreSQL metadata for validation
  3. Query Planning (plan) - Convert request to execution plan
  4. SQL Generation (query) - Generate parameterized SQL
  5. 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::PreferRepresentation;
pub use api_request::Preferences;
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.
embed
Relationship embedding: fetching related rows for a set of parent rows.
error
Error types for Postrust.
plan
Query planning module.
prelude
Prelude for common imports.
query
SQL query generation from execution plans.
row_json
Conversion of PostgreSQL rows to JSON.
schema_cache
PostgreSQL schema introspection and caching.