1#![doc = include_str!("../README.md")]
2
3pub mod app;
7pub mod config;
8pub mod context;
9#[cfg(feature = "orm")]
10pub mod db;
11pub mod engine;
12pub mod flash;
13pub mod forms;
14pub mod macros;
15pub mod migration;
16
17pub mod admin;
18pub mod errors;
19pub mod middleware;
20
21pub mod utils;
22
23pub mod config_runique {
27 pub mod composant_config {
28 pub mod security_struct {
29 pub use crate::config::security::*;
30 }
31 pub mod server_struct {
32 pub use crate::config::server::*;
33 }
34 pub mod settings_struct {
35 pub use crate::config::settings::*;
36 }
37 pub mod static_struct {
38 pub use crate::config::static_files::*;
39 }
40 }
41
42 pub mod config_struct {
43 pub use crate::config::app::RuniqueConfig;
44 }
45
46 pub use composant_config::*;
47 pub use config_struct::RuniqueConfig;
48}
49
50#[cfg(feature = "orm")]
51pub mod data_base_runique {
52 pub mod config {
53 pub use crate::db::config::*;
54 }
55
56 pub mod composant_data_base {
57 pub use crate::macros::bdd::{objects::*, query::*};
58 }
59
60 pub use config::*;
61}
62
63pub mod formulaire {
64 pub mod builder_form {
65 pub mod base_struct {
66 pub use crate::forms::base::*;
67 }
68 pub mod field_type {
69 pub use crate::forms::fields::*;
70 }
71 pub mod generique_field {
72 pub use crate::forms::generic::*;
73 }
74 pub mod formmanager {
75 pub use crate::forms::Forms;
76 }
77 pub mod option_field {
78 pub use crate::forms::options::*;
79 }
80 pub mod trait_form {
81 pub use crate::forms::field::*;
82 }
83 pub mod model_form {
84 pub use crate::forms::model_form::*;
85 }
86 }
87
88 pub mod utils {
89 pub use crate::utils::*;
90 }
91
92 pub use builder_form::*;
93 pub use utils::*;
94}
95
96pub mod middleware_runique {
97 pub mod middleware {
98 pub use crate::middleware::allowed_hosts::*;
99 pub use crate::middleware::auth::*;
100 pub use crate::middleware::cache::*;
101 pub use crate::middleware::config::*;
102 pub use crate::middleware::csp::*;
103 pub use crate::middleware::csrf::*;
104 pub use crate::middleware::errors::*;
105 }
106
107 pub use middleware::*;
108}
109
110pub mod macro_runique {
111 pub use crate::macros::*;
112 pub use crate::macros::{
113 context::{context_simplifier, flash},
114 forms::*,
115 routeur::*,
116 };
117}
118
119pub mod moteur_engine {
120 pub mod engine_struct {
121 pub use crate::engine::core::*;
122 }
123
124 pub use engine_struct::*;
125}
126
127pub mod runique_start {
128 pub mod composant_app {
129 pub mod template_engine {
130 pub use crate::app::templates::*;
131 }
132 }
133
134 pub use crate::app::*;
135}
136pub use forms::Prisme;
137pub use anyhow;
141pub use argon2;
142pub use async_trait;
143pub use axum;
144pub use chrono;
145pub use hmac;
146pub use once_cell;
147pub use regex;
148#[cfg(feature = "orm")]
149pub use sea_orm;
150pub use serde;
151pub use serde_json;
152pub use sha2;
153pub use tera;
154pub use tokio;
155pub use tower;
156pub use tower_http;
157pub use tower_sessions;
158pub use uuid;
159
160pub use derive_form::model;
161
162pub mod prelude {
166 pub use crate::errors::ErrorContext;
170 pub use crate::errors::RuniqueError;
171 pub use tracing;
172 pub use crate::app::{RuniqueApp, RuniqueAppBuilder};
176 pub use crate::config::app::RuniqueConfig;
177 pub use crate::context::{AppError, Request};
178 pub use crate::engine::RuniqueEngine;
179 pub use crate::flash::{FlashMessage, Message, MessageLevel};
180 pub use crate::forms::{
181 field::{FormField, RuniqueForm},
182 fields::{
183 boolean::BooleanField,
184 choice::{ChoiceField, ChoiceOption},
185 datetime::DateTimeField,
186 file::FileField,
187 hidden::HiddenField,
188 number::NumericField,
189 special::{ColorField, IPAddressField, JSONField, SlugField, UUIDField},
190 text::TextField,
191 CheckboxField, DateField, DurationField, RadioField, TimeField,
192 },
193 generic::{FieldKind, GenericField},
194 model_form::ModelForm,
195 Forms, Prisme,
196 };
197 pub use crate::migration::schema::ModelSchema;
198 pub use crate::utils::aliases::*;
199 pub use derive_form::{form, model};
200
201 use crate::chrono;
205 pub use crate::config::{security::SecurityConfig, server::ServerConfig};
206
207 pub use crate::utils::csp_nonce::*;
211 pub use crate::utils::csrf::*;
212
213 pub use crate::context::request::RuniqueContext;
218
219 pub use crate::middleware::{
223 allowed_hosts::*, auth::*, cache::*, config::*, csp::*, csrf::*, errors::*,
224 };
225
226 pub use axum::{
230 extract::{Extension, Form, FromRequestParts, Path, Query, State},
231 http::{HeaderMap, HeaderValue, Method, StatusCode},
232 middleware,
233 response::{Html, IntoResponse, Redirect, Response},
234 routing::{any, delete, get, patch, post, put},
235 Json, Router,
236 };
237
238 #[cfg(feature = "orm")]
243 pub use crate::db::{DatabaseConfig, DatabaseConfigBuilder, DatabaseEngine};
244 #[cfg(feature = "orm")]
245 pub use sea_orm::{
246 self, entity::prelude::*, ActiveModelBehavior, ActiveModelTrait, ColumnTrait,
247 ConnectOptions, Database, DatabaseConnection, DbErr, EntityTrait, ModelTrait, NotSet,
248 QueryFilter, QueryOrder, QuerySelect, Set,
249 };
250 pub use sea_orm_migration::sea_query;
251
252 pub use serde::{Deserialize, Deserializer, Serialize, Serializer};
256 pub use serde_json;
257
258 pub use tera::{Context, Tera};
262
263 pub use async_trait::async_trait;
267 pub use once_cell::sync::Lazy;
268 pub use tokio;
269
270 pub use std::collections::{HashMap, HashSet};
274 pub use std::sync::Arc;
275
276 pub use crate::utils::password::{
280 hash, password_init, verify, AutoConfig, Manual, PasswordConfig,
281 };
282 pub use hmac::{Hmac, Mac};
283 pub use sha2::Sha256;
284
285 pub use anyhow::{Context as AnyhowContext, Error, Result};
289 pub use chrono::{DateTime, NaiveDate, NaiveDateTime, Utc};
290 pub use regex::Regex;
291 pub use tower_sessions::{Session, SessionManagerLayer};
292 pub use uuid::Uuid;
293
294 pub use crate::admin::config::config_admin::AdminConfig;
298 pub use crate::admin::daemon::{generate, parse_admin_file, watch};
299 pub use crate::admin::registry::AdminRegistry;
300 pub use crate::admin::resource::{
301 AdminResource, ColumnFilter, CrudOperation, DisplayConfig, ResourcePermissions,
302 };
303 pub use crate::admin::router::{build_admin_router, AdminState};
304 pub use axum::http::method::*;
305}