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
17#[cfg(feature = "mcp")]
18pub mod mcp;
19
20pub mod authrs;
21pub mod case;
22pub mod config;
23pub mod db;
24pub mod error;
25pub mod events;
26pub mod extensible_fields;
27pub mod extractors;
28pub mod handlers;
29pub mod migration;
30pub mod openapi;
31pub mod response;
32pub mod routes;
33pub mod service;
34pub mod sql;
35pub mod state;
36pub mod storage;
37pub mod store;
38pub mod tenant;
39
40pub use config::{load_from_pool, resolve, FullConfig, ResolvedEntity, ResolvedModel};
41pub use error::{AppError, ConfigError};
42pub use migration::{
43    apply_migrations, compute_migration_plan, execute_migration_plan, MigrationOperation,
44    MigrationPlan, MigrationRisk, MigrationSafety, MigrationStep, MigrationSummary,
45};
46pub use response::{error_body, success_many, success_one};
47pub use routes::{common_routes, common_routes_with_ready, config_routes, entity_routes};
48pub use service::{CrudService, TenantExecutor};
49pub use state::AppState;
50pub use storage::{init_storage_provider, StorageProvider};
51pub use store::{create_pool, ensure_database_exists, ensure_sys_tables, DEFAULT_PACKAGE_ID};
52pub use tenant::{load_registry_from_pool, TenantEntry, TenantRegistry, TenantStrategy};