[package]
edition = "2024"
rust-version = "1.85"
name = "umbral-core"
version = "0.0.2"
authors = ["Dalmas Ogembo <dalmasogembo@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "umbral internals: ORM, migrations, routing, DB backends, the Plugin trait. Do not depend on this directly; use the `umbral` facade."
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/dalmasonto/umbral"
[lib]
name = "umbral_core"
path = "src/lib.rs"
[[test]]
name = "aggregates"
path = "tests/aggregates.rs"
[[test]]
name = "annotate_autodiscover"
path = "tests/annotate_autodiscover.rs"
[[test]]
name = "annotate_count"
path = "tests/annotate_count.rs"
[[test]]
name = "array_field"
path = "tests/array_field.rs"
[[test]]
name = "array_ops"
path = "tests/array_ops.rs"
[[test]]
name = "atomic_terminals"
path = "tests/atomic_terminals.rs"
[[test]]
name = "backend"
path = "tests/backend.rs"
[[test]]
name = "backup"
path = "tests/backup.rs"
[[test]]
name = "backup_json"
path = "tests/backup_json.rs"
[[test]]
name = "backup_postgres"
path = "tests/backup_postgres.rs"
[[test]]
name = "builder"
path = "tests/builder.rs"
[[test]]
name = "bulk_signals"
path = "tests/bulk_signals.rs"
[[test]]
name = "bulk_update_raw"
path = "tests/bulk_update_raw.rs"
[[test]]
name = "compression"
path = "tests/compression.rs"
[[test]]
name = "cross_db_fk"
path = "tests/cross_db_fk.rs"
[[test]]
name = "csrf_context"
path = "tests/csrf_context.rs"
[[test]]
name = "csv_import"
path = "tests/csv_import.rs"
[[test]]
name = "db_functions"
path = "tests/db_functions.rs"
[[test]]
name = "db_pool_config"
path = "tests/db_pool_config.rs"
[[test]]
name = "decimal_field"
path = "tests/decimal_field.rs"
[[test]]
name = "dyn_error_enum"
path = "tests/dyn_error_enum.rs"
[[test]]
name = "dyn_insert_tx"
path = "tests/dyn_insert_tx.rs"
[[test]]
name = "dyn_m2m_batched"
path = "tests/dyn_m2m_batched.rs"
[[test]]
name = "dyn_queryset_tx"
path = "tests/dyn_queryset_tx.rs"
[[test]]
name = "dyn_select_related_nested"
path = "tests/dyn_select_related_nested.rs"
[[test]]
name = "dyn_signals"
path = "tests/dyn_signals.rs"
[[test]]
name = "dyn_string_pk_include"
path = "tests/dyn_string_pk_include.rs"
[[test]]
name = "earliest_latest_distinct"
path = "tests/earliest_latest_distinct.rs"
[[test]]
name = "error_handling"
path = "tests/error_handling.rs"
[[test]]
name = "error_pages"
path = "tests/error_pages.rs"
[[test]]
name = "exclude"
path = "tests/exclude.rs"
[[test]]
name = "f_expressions"
path = "tests/f_expressions.rs"
[[test]]
name = "file_field_check_missing_storage"
path = "tests/file_field_check_missing_storage.rs"
[[test]]
name = "file_field_check_present_storage"
path = "tests/file_field_check_present_storage.rs"
[[test]]
name = "file_field_roundtrip"
path = "tests/file_field_roundtrip.rs"
[[test]]
name = "file_field_storage_resolution"
path = "tests/file_field_storage_resolution.rs"
[[test]]
name = "file_image_field"
path = "tests/file_image_field.rs"
[[test]]
name = "filter_in_strings"
path = "tests/filter_in_strings.rs"
[[test]]
name = "filter_m2m"
path = "tests/filter_m2m.rs"
[[test]]
name = "first_hydrates_relations"
path = "tests/first_hydrates_relations.rs"
[[test]]
name = "fixtures"
path = "tests/fixtures.rs"
[[test]]
name = "fk_save_coercion"
path = "tests/fk_save_coercion.rs"
[[test]]
name = "float_min_max"
path = "tests/float_min_max.rs"
[[test]]
name = "foreign_keys"
path = "tests/foreign_keys.rs"
[[test]]
name = "form_derive"
path = "tests/form_derive.rs"
[[test]]
name = "form_extractor"
path = "tests/form_extractor.rs"
[[test]]
name = "form_file_field"
path = "tests/form_file_field.rs"
[[test]]
name = "form_fk"
path = "tests/form_fk.rs"
[[test]]
name = "form_m2m"
path = "tests/form_m2m.rs"
[[test]]
name = "form_m2m_non_i64_child"
path = "tests/form_m2m_non_i64_child.rs"
[[test]]
name = "forms_render"
path = "tests/forms_render.rs"
[[test]]
name = "fulltext_field"
path = "tests/fulltext_field.rs"
[[test]]
name = "in_bulk"
path = "tests/in_bulk.rs"
[[test]]
name = "inspect"
path = "tests/inspect.rs"
[[test]]
name = "join_related"
path = "tests/join_related.rs"
[[test]]
name = "join_related_m2m"
path = "tests/join_related_m2m.rs"
[[test]]
name = "joins_nested"
path = "tests/joins_nested.rs"
[[test]]
name = "json_field"
path = "tests/json_field.rs"
[[test]]
name = "json_form_parse"
path = "tests/json_form_parse.rs"
[[test]]
name = "json_ops"
path = "tests/json_ops.rs"
[[test]]
name = "json_sqlite_live"
path = "tests/json_sqlite_live.rs"
[[test]]
name = "lazy_user"
path = "tests/lazy_user.rs"
[[test]]
name = "m2m_round_trip"
path = "tests/m2m_round_trip.rs"
[[test]]
name = "m2m_signals"
path = "tests/m2m_signals.rs"
[[test]]
name = "markdown_filter"
path = "tests/markdown_filter.rs"
[[test]]
name = "masked_form"
path = "tests/masked_form.rs"
[[test]]
name = "masked_malformed_key"
path = "tests/masked_malformed_key.rs"
[[test]]
name = "masked_roundtrip"
path = "tests/masked_roundtrip.rs"
[[test]]
name = "media_url_template"
path = "tests/media_url_template.rs"
[[test]]
name = "middleware_pipeline"
path = "tests/middleware_pipeline.rs"
[[test]]
name = "migrate"
path = "tests/migrate.rs"
[[test]]
name = "migrate_drift"
path = "tests/migrate_drift.rs"
[[test]]
name = "migrate_run_sql"
path = "tests/migrate_run_sql.rs"
[[test]]
name = "migration_safety"
path = "tests/migration_safety.rs"
[[test]]
name = "model_qualified_column"
path = "tests/model_qualified_column.rs"
[[test]]
name = "model_trait"
path = "tests/model_trait.rs"
[[test]]
name = "model_writes"
path = "tests/model_writes.rs"
[[test]]
name = "multi_database"
path = "tests/multi_database.rs"
[[test]]
name = "multichoice"
path = "tests/multichoice.rs"
[[test]]
name = "multipart_storage_merge"
path = "tests/multipart_storage_merge.rs"
[[test]]
name = "namespacing"
path = "tests/namespacing.rs"
[[test]]
name = "network_field"
path = "tests/network_field.rs"
[[test]]
name = "one_to_one"
path = "tests/one_to_one.rs"
[[test]]
name = "only_projection"
path = "tests/only_projection.rs"
[[test]]
name = "orm_audit_relations"
path = "tests/orm_audit_relations.rs"
[[test]]
name = "orm_audit_serde_null"
path = "tests/orm_audit_serde_null.rs"
[[test]]
name = "pagination"
path = "tests/pagination.rs"
[[test]]
name = "pk_agnostic"
path = "tests/pk_agnostic.rs"
[[test]]
name = "pk_autogen"
path = "tests/pk_autogen.rs"
[[test]]
name = "pk_string_backup"
path = "tests/pk_string_backup.rs"
[[test]]
name = "pk_string_in_bulk"
path = "tests/pk_string_in_bulk.rs"
[[test]]
name = "pk_string_join_values"
path = "tests/pk_string_join_values.rs"
[[test]]
name = "pk_string_m2m"
path = "tests/pk_string_m2m.rs"
[[test]]
name = "pk_string_one_to_one"
path = "tests/pk_string_one_to_one.rs"
[[test]]
name = "pk_string_reverse_fk"
path = "tests/pk_string_reverse_fk.rs"
[[test]]
name = "pk_uuid_m2m"
path = "tests/pk_uuid_m2m.rs"
[[test]]
name = "pk_uuid_postgres"
path = "tests/pk_uuid_postgres.rs"
[[test]]
name = "plugin_contract"
path = "tests/plugin_contract.rs"
[[test]]
name = "postgres_ddl"
path = "tests/postgres_ddl.rs"
[[test]]
name = "postgres_inspect"
path = "tests/postgres_inspect.rs"
[[test]]
name = "postgres_queryset"
path = "tests/postgres_queryset.rs"
[[test]]
name = "postgres_seam"
path = "tests/postgres_seam.rs"
[[test]]
name = "prefetch_related"
path = "tests/prefetch_related.rs"
[[test]]
name = "q_objects"
path = "tests/q_objects.rs"
[[test]]
name = "query_counts"
path = "tests/query_counts.rs"
[[test]]
name = "queryset"
path = "tests/queryset.rs"
[[test]]
name = "ratelimit"
path = "tests/ratelimit.rs"
[[test]]
name = "rename_detection"
path = "tests/rename_detection.rs"
[[test]]
name = "reverse_accessor"
path = "tests/reverse_accessor.rs"
[[test]]
name = "reverse_fk"
path = "tests/reverse_fk.rs"
[[test]]
name = "reverse_fk_prefetch"
path = "tests/reverse_fk_prefetch.rs"
[[test]]
name = "route_context"
path = "tests/route_context.rs"
[[test]]
name = "router_allow"
path = "tests/router_allow.rs"
[[test]]
name = "router_allow_migrate"
path = "tests/router_allow_migrate.rs"
[[test]]
name = "router_dynamic"
path = "tests/router_dynamic.rs"
[[test]]
name = "router_m2m_junction"
path = "tests/router_m2m_junction.rs"
[[test]]
name = "router_per_model"
path = "tests/router_per_model.rs"
[[test]]
name = "router_read_write_split"
path = "tests/router_read_write_split.rs"
[[test]]
name = "router_replica_postgres"
path = "tests/router_replica_postgres.rs"
[[test]]
name = "router_schema_postgres"
path = "tests/router_schema_postgres.rs"
[[test]]
name = "router_schema_qualified"
path = "tests/router_schema_qualified.rs"
[[test]]
name = "router_schema_sqlite"
path = "tests/router_schema_sqlite.rs"
[[test]]
name = "router_upsert_readwrite"
path = "tests/router_upsert_readwrite.rs"
[[test]]
name = "routes_layered"
path = "tests/routes_layered.rs"
[[test]]
name = "search_across"
path = "tests/search_across.rs"
[[test]]
name = "search_helpers"
path = "tests/search_helpers.rs"
[[test]]
name = "select_related"
path = "tests/select_related.rs"
[[test]]
name = "select_related_nested"
path = "tests/select_related_nested.rs"
[[test]]
name = "set_ops"
path = "tests/set_ops.rs"
[[test]]
name = "signal_actor"
path = "tests/signal_actor.rs"
[[test]]
name = "signals_async_panic"
path = "tests/signals_async_panic.rs"
[[test]]
name = "signals_registry"
path = "tests/signals_registry.rs"
[[test]]
name = "slash_redirect"
path = "tests/slash_redirect.rs"
[[test]]
name = "soft_delete"
path = "tests/soft_delete.rs"
[[test]]
name = "soft_delete_dynamic"
path = "tests/soft_delete_dynamic.rs"
[[test]]
name = "sqlite_pragmas"
path = "tests/sqlite_pragmas.rs"
[[test]]
name = "static_manifest_resolve"
path = "tests/static_manifest_resolve.rs"
[[test]]
name = "static_publish"
path = "tests/static_publish.rs"
[[test]]
name = "storage_ambient"
path = "tests/storage_ambient.rs"
[[test]]
name = "storage_registry"
path = "tests/storage_registry.rs"
[[test]]
name = "streaming_response"
path = "tests/streaming_response.rs"
[[test]]
name = "subquery"
path = "tests/subquery.rs"
[[test]]
name = "system_check"
path = "tests/system_check.rs"
[[test]]
name = "system_check_choices_default"
path = "tests/system_check_choices_default.rs"
[[test]]
name = "system_check_choices_default_valid"
path = "tests/system_check_choices_default_valid.rs"
[[test]]
name = "system_check_security_missing"
path = "tests/system_check_security_missing.rs"
[[test]]
name = "template_discovery"
path = "tests/template_discovery.rs"
[[test]]
name = "template_tags"
path = "tests/template_tags.rs"
[[test]]
name = "text_pg_field"
path = "tests/text_pg_field.rs"
[[test]]
name = "transactions"
path = "tests/transactions.rs"
[[test]]
name = "try_for_each"
path = "tests/try_for_each.rs"
[[test]]
name = "tx_count_pg"
path = "tests/tx_count_pg.rs"
[[test]]
name = "type_catalogue"
path = "tests/type_catalogue.rs"
[[test]]
name = "update_or_create"
path = "tests/update_or_create.rs"
[[test]]
name = "update_signals"
path = "tests/update_signals.rs"
[[test]]
name = "upsert_get_or_create"
path = "tests/upsert_get_or_create.rs"
[[test]]
name = "values_projection"
path = "tests/values_projection.rs"
[[test]]
name = "values_traversal"
path = "tests/values_traversal.rs"
[[test]]
name = "widget_attr"
path = "tests/widget_attr.rs"
[dependencies.ammonia]
version = "4"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
[dependencies.base64]
version = "0.22"
[dependencies.bytes]
version = "1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.chrono-tz]
version = "0.10"
[dependencies.clap]
version = "4"
features = [
"derive",
"string",
]
[dependencies.crypto_box]
version = "0.9"
features = ["std"]
[dependencies.dotenvy]
version = "0.15"
[dependencies.figment]
version = "0.10"
features = [
"env",
"toml",
]
[dependencies.futures-util]
version = "0.3"
features = ["std"]
default-features = false
[dependencies.http]
version = "1"
[dependencies.ipnetwork]
version = "0.20"
features = ["serde"]
[dependencies.mac_address]
version = "1"
features = ["serde"]
[dependencies.minijinja]
version = "2"
[dependencies.multer]
version = "3"
[dependencies.pulldown-cmark]
version = "0.12"
features = ["html"]
default-features = false
[dependencies.rand_core]
version = "0.6"
features = ["getrandom"]
[dependencies.regex]
version = "1"
[dependencies.rust_decimal]
version = "1"
features = ["serde-with-str"]
default-features = false
[dependencies.sea-query]
version = "0.32"
features = [
"with-json",
"with-ipnetwork",
"with-mac_address",
"with-rust_decimal",
]
[dependencies.sea-query-binder]
version = "0.7"
features = [
"sqlx-sqlite",
"sqlx-postgres",
"with-chrono",
"with-uuid",
"with-json",
"with-ipnetwork",
"with-mac_address",
"with-rust_decimal",
]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.sha2]
version = "0.10"
[dependencies.sqlx]
version = "0.8"
features = [
"sqlite",
"postgres",
"any",
"runtime-tokio",
"chrono",
"uuid",
"json",
"ipnetwork",
"mac_address",
"rust_decimal",
]
[dependencies.syntect]
version = "5"
features = ["default-fancy"]
default-features = false
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"sync",
]
[dependencies.toml]
version = "0.8"
[dependencies.tower]
version = "0.5"
default-features = false
[dependencies.tower-http]
version = "0.6"
features = [
"catch-panic",
"cors",
"fs",
"compression-gzip",
"compression-br",
"trace",
]
default-features = false
[dependencies.tracing]
version = "0.1"
[dependencies.umbral-casing]
version = "0.0.2"
[dependencies.uuid]
version = "1"
features = [
"serde",
"v7",
]
[dev-dependencies.figment]
version = "0.10"
features = ["test"]
[dev-dependencies.futures-util]
version = "0.3"
[dev-dependencies.http]
version = "1"
[dev-dependencies.http-body-util]
version = "0.1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
"rt-multi-thread",
"sync",
]
[dev-dependencies.tower]
version = "0.5"
features = ["util"]
[dev-dependencies.tracing-subscriber]
version = "0.3"