1pub mod config;
55pub mod core;
56pub mod entities;
57pub mod links;
58pub mod server;
59pub mod storage;
60
61pub mod prelude {
63 pub use crate::core::{
65 auth::{AuthContext, AuthPolicy, AuthProvider, NoAuthProvider},
66 entity::{Data, Entity, Link},
67 field::{FieldFormat, FieldValue},
68 link::{LinkAuthConfig, LinkDefinition, LinkEntity},
69 module::{EntityCreator, EntityFetcher, Module},
70 pluralize::Pluralizer,
71 query::{PaginatedResponse, PaginationMeta, QueryParams},
72 service::{DataService, LinkService},
73 store::QueryableStore,
74 validation::{EntityValidationConfig, Validated},
75 };
76
77 pub use crate::{
79 add_filters_for_field, add_validators_for_field, data_fields, entity_fields,
80 impl_data_entity, impl_data_entity_validated, impl_link_entity, link_fields,
81 };
82
83 pub use crate::links::{
85 handlers::{
86 AppState, create_link, delete_link, get_link, list_available_links, list_links,
87 update_link,
88 },
89 registry::{LinkDirection, LinkRouteRegistry, RouteInfo},
90 };
91
92 #[cfg(feature = "dynamodb")]
94 pub use crate::storage::{DynamoDBDataService, DynamoDBLinkService};
95 pub use crate::storage::{InMemoryDataService, InMemoryLinkService};
96 #[cfg(feature = "lmdb")]
97 pub use crate::storage::{LmdbDataService, LmdbLinkService};
98 #[cfg(feature = "mongodb_backend")]
99 pub use crate::storage::{MongoDataService, MongoLinkService};
100 #[cfg(feature = "mysql")]
101 pub use crate::storage::{MysqlDataService, MysqlLinkService};
102 #[cfg(feature = "neo4j")]
103 pub use crate::storage::{Neo4jDataService, Neo4jLinkService};
104 #[cfg(feature = "postgres")]
105 pub use crate::storage::{PostgresDataService, PostgresLinkService};
106 #[cfg(feature = "scylladb")]
107 pub use crate::storage::{ScyllaDataService, ScyllaLinkService};
108
109 pub use crate::config::{EntityAuthConfig, EntityConfig, LinksConfig, ValidationRule};
111
112 pub use crate::server::{EntityDescriptor, EntityRegistry, ServerBuilder};
114
115 pub use anyhow::Result;
117 pub use async_trait::async_trait;
118 pub use chrono::{DateTime, Utc};
119 pub use serde::{Deserialize, Serialize};
120 pub use uuid::Uuid;
121
122 pub use axum::{
124 Router,
125 extract::{Path, State},
126 http::HeaderMap,
127 routing::{delete, get, post, put},
128 };
129}