Skip to main content

architect_sdk/
lib.rs

1//! `foundry-rs` — configuration-driven REST backend library for Rust with PostgreSQL.
2//!
3//! Define your schemas, tables, columns, and API entities in JSON. Get a fully working,
4//! production-grade REST API with multi-tenancy, validation, and OpenAPI docs — no
5//! entity-specific business logic required.
6//!
7//! # Quick Start
8//!
9//! Add to your `Cargo.toml`:
10//! ```toml
11//! [dependencies]
12//! foundry-rs = "0.1"
13//! ```
14//!
15//! See the [repository](https://github.com/kaushik-xs/architect-sdk) for full examples.
16
17pub mod authrs;
18pub mod case;
19pub mod config;
20pub mod db;
21pub mod error;
22pub mod events;
23pub mod extractors;
24pub mod handlers;
25pub mod migration;
26pub mod openapi;
27pub mod response;
28pub mod routes;
29pub mod service;
30pub mod sql;
31pub mod state;
32pub mod storage;
33pub mod store;
34pub mod tenant;
35
36pub use config::{load_from_pool, resolve, FullConfig, ResolvedEntity, ResolvedModel};
37pub use error::{AppError, ConfigError};
38pub use migration::{
39    apply_migrations, compute_migration_plan, execute_migration_plan, MigrationOperation,
40    MigrationPlan, MigrationRisk, MigrationSafety, MigrationStep, MigrationSummary,
41};
42pub use response::{error_body, success_many, success_one};
43pub use routes::{common_routes, common_routes_with_ready, config_routes, entity_routes};
44pub use service::{CrudService, TenantExecutor};
45pub use state::AppState;
46pub use storage::{init_storage_provider, StorageProvider};
47pub use store::{create_pool, ensure_database_exists, ensure_sys_tables, DEFAULT_PACKAGE_ID};
48pub use tenant::{load_registry_from_pool, TenantEntry, TenantRegistry, TenantStrategy};