[package]
edition = "2024"
rust-version = "1.96.0"
name = "rullst-orm"
version = "12.1.2"
authors = ["Rullst Core Team"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Fast, un-opinionated, database-agnostic ORM and query builder for Rust"
homepage = "https://rullst.github.io"
documentation = "https://docs.rs/rullst-orm"
readme = "README.md"
keywords = [
"orm",
"database",
"sqlite",
"postgres",
"mysql",
]
categories = ["database"]
license = "MIT"
repository = "https://github.com/Rullst/Rullst"
resolver = "2"
[package.metadata.cargo-machete]
ignored = ["tinyvec"]
[features]
default = ["drivers-all"]
drivers-all = [
"sqlx/sqlite",
"sqlx/postgres",
"sqlx/mysql",
]
duckdb = ["dep:duckdb"]
mongodb = ["dep:mongodb"]
pgvector = ["dep:pgvector"]
polyglot = [
"mongodb",
"duckdb",
"turso",
"surrealdb",
"qdrant",
]
qdrant = [
"dep:reqwest",
"dep:url",
]
redis = [
"dep:redis",
"dep:sha2",
"dep:url",
]
scout-http = [
"dep:reqwest",
"dep:url",
]
strict-mysql = ["sqlx/mysql"]
strict-postgres = ["sqlx/postgres"]
strict-sqlite = ["sqlx/sqlite"]
surrealdb = ["dep:reqwest"]
turso = [
"dep:reqwest",
"dep:url",
"dep:sha2",
"sqlx/sqlite",
]
[lib]
name = "rullst_orm"
path = "src/lib.rs"
[[example]]
name = "admin_panel"
path = "examples/admin_panel.rs"
[[example]]
name = "advanced_joins_and_subqueries"
path = "examples/advanced_joins_and_subqueries.rs"
[[example]]
name = "api_resources"
path = "examples/api_resources.rs"
[[example]]
name = "artisan_demo"
path = "examples/artisan_demo.rs"
[[example]]
name = "audit_trail"
path = "examples/audit_trail.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "collections"
path = "examples/collections.rs"
[[example]]
name = "compile_time_safety"
path = "examples/compile_time_safety.rs"
[[example]]
name = "constrained_eager_loading"
path = "examples/constrained_eager_loading.rs"
[[example]]
name = "custom_soft_delete"
path = "examples/custom_soft_delete.rs"
[[example]]
name = "enterprise_scaling"
path = "examples/enterprise_scaling.rs"
[[example]]
name = "factories_and_seeders"
path = "examples/factories_and_seeders.rs"
[[example]]
name = "field_hiding"
path = "examples/field_hiding.rs"
[[example]]
name = "hooks"
path = "examples/hooks.rs"
[[example]]
name = "json_casting"
path = "examples/json_casting.rs"
[[example]]
name = "many_to_many"
path = "examples/many_to_many.rs"
[[example]]
name = "migrations"
path = "examples/migrations.rs"
[[example]]
name = "observers"
path = "examples/observers.rs"
[[example]]
name = "polymorphic_relationships"
path = "examples/polymorphic_relationships.rs"
[[example]]
name = "query_logging"
path = "examples/query_logging.rs"
[[example]]
name = "redis_cache_and_events"
path = "examples/redis_cache_and_events.rs"
[[example]]
name = "relationships"
path = "examples/relationships.rs"
[[example]]
name = "saas_multi_tenancy"
path = "examples/saas_multi_tenancy.rs"
[[example]]
name = "scopes"
path = "examples/scopes.rs"
[[example]]
name = "scout_search"
path = "examples/scout_search.rs"
[[example]]
name = "transactions"
path = "examples/transactions.rs"
[[test]]
name = "atomic_init_test"
path = "tests/atomic_init_test.rs"
[[test]]
name = "audit_atomic_test"
path = "tests/audit_atomic_test.rs"
[[test]]
name = "binding_order_test"
path = "tests/binding_order_test.rs"
[[test]]
name = "builder_safety_audit_test"
path = "tests/builder_safety_audit_test.rs"
[[test]]
name = "builder_validation_test"
path = "tests/builder_validation_test.rs"
[[test]]
name = "cte_test"
path = "tests/cte_test.rs"
[[test]]
name = "deep_coverage_test"
path = "tests/deep_coverage_test.rs"
[[test]]
name = "encrypted_field_test"
path = "tests/encrypted_field_test.rs"
[[test]]
name = "integration_extra"
path = "tests/integration_extra.rs"
[[test]]
name = "integration_init_replicas"
path = "tests/integration_init_replicas.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "lazy_load_test"
path = "tests/lazy_load_test.rs"
[[test]]
name = "macro_mutants_test"
path = "tests/macro_mutants_test.rs"
[[test]]
name = "matrix_document_recovery"
path = "tests/matrix_document_recovery.rs"
[[test]]
name = "matrix_mariadb"
path = "tests/matrix_mariadb.rs"
[[test]]
name = "matrix_meilisearch"
path = "tests/matrix_meilisearch.rs"
[[test]]
name = "matrix_mongodb"
path = "tests/matrix_mongodb.rs"
[[test]]
name = "matrix_mysql"
path = "tests/matrix_mysql.rs"
[[test]]
name = "matrix_pgvector"
path = "tests/matrix_pgvector.rs"
[[test]]
name = "matrix_postgres"
path = "tests/matrix_postgres.rs"
[[test]]
name = "matrix_qdrant"
path = "tests/matrix_qdrant.rs"
[[test]]
name = "matrix_redis_data"
path = "tests/matrix_redis_data.rs"
[[test]]
name = "matrix_sqlite"
path = "tests/matrix_sqlite.rs"
[[test]]
name = "matrix_surrealdb"
path = "tests/matrix_surrealdb.rs"
[[test]]
name = "matrix_turso"
path = "tests/matrix_turso.rs"
[[test]]
name = "migration_pool_tests"
path = "tests/migration_pool_tests.rs"
[[test]]
name = "morph_to_test"
path = "tests/morph_to_test.rs"
[[test]]
name = "mutation_reentrancy_test"
path = "tests/mutation_reentrancy_test.rs"
[[test]]
name = "native_enum_test"
path = "tests/native_enum_test.rs"
[[test]]
name = "outbox_transaction_test"
path = "tests/outbox_transaction_test.rs"
[[test]]
name = "partial_update_test"
path = "tests/partial_update_test.rs"
[[test]]
name = "policy_test"
path = "tests/policy_test.rs"
[[test]]
name = "post_commit_transaction_test"
path = "tests/post_commit_transaction_test.rs"
[[test]]
name = "privacy_macro_test"
path = "tests/privacy_macro_test.rs"
[[test]]
name = "proptest_builder"
path = "tests/proptest_builder.rs"
[[test]]
name = "qdrant_protocol_test"
path = "tests/qdrant_protocol_test.rs"
[[test]]
name = "query_cache_live"
path = "tests/query_cache_live.rs"
[[test]]
name = "query_cache_transaction_test"
path = "tests/query_cache_transaction_test.rs"
[[test]]
name = "rag_test"
path = "tests/rag_test.rs"
[[test]]
name = "raw_test"
path = "tests/raw_test.rs"
[[test]]
name = "redis_hash_test"
path = "tests/redis_hash_test.rs"
[[test]]
name = "sandbox_test"
path = "tests/sandbox_test.rs"
[[test]]
name = "scout_http_protocol_test"
path = "tests/scout_http_protocol_test.rs"
[[test]]
name = "scout_post_commit_test"
path = "tests/scout_post_commit_test.rs"
[[test]]
name = "scout_provider_test"
path = "tests/scout_provider_test.rs"
[[test]]
name = "search_scope_audit_test"
path = "tests/search_scope_audit_test.rs"
[[test]]
name = "stream_test"
path = "tests/stream_test.rs"
[[test]]
name = "stress_concurrency"
path = "tests/stress_concurrency.rs"
[[test]]
name = "telemetry_test"
path = "tests/telemetry_test.rs"
[[test]]
name = "tenant_scope_test"
path = "tests/tenant_scope_test.rs"
[[test]]
name = "turso_primary"
path = "tests/turso_primary.rs"
[[test]]
name = "vector_test"
path = "tests/vector_test.rs"
[[bench]]
name = "orm_bench"
path = "benches/orm_bench.rs"
harness = false
[[bench]]
name = "orm_comparison"
path = "benches/orm_comparison.rs"
harness = false
required-features = ["strict-sqlite"]
[dependencies.aes-gcm]
version = "0.11.0"
[dependencies.async-stream]
version = "0.3.5"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.base64]
version = "0.23.0"
[dependencies.duckdb]
version = "1.10505.0"
features = ["bundled"]
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.mongodb]
version = "3.9.1"
optional = true
[dependencies.pgvector]
version = "0.4.2"
features = [
"serde",
"sqlx",
]
optional = true
[dependencies.rand]
version = "0.10.1"
[dependencies.redis]
version = "1.7.0"
features = [
"tokio-rustls-comp",
"connection-manager",
]
optional = true
default-features = false
[dependencies.reqwest]
version = "0.13.5"
features = [
"json",
"rustls",
"stream",
]
optional = true
default-features = false
[dependencies.rullst-orm-macros]
version = "12.1.2"
features = ["runtime-driver-codecs"]
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
default-features = false
[dependencies.serde_json]
version = "1.0.150"
default-features = false
[dependencies.sha2]
version = "0.11.0"
optional = true
[dependencies.sqlx]
version = "0.9.0"
features = [
"any",
"runtime-tokio",
"macros",
"json",
"tls-rustls",
]
default-features = false
[dependencies.syn]
version = "3.0.5"
features = [
"full",
"extra-traits",
]
[dependencies.thiserror]
version = "2.0.19"
[dependencies.tinyvec]
version = "=1.13.3"
default-features = false
[dependencies.tokio]
version = "1.52.3"
features = ["full"]
default-features = false
[dependencies.tracing]
version = "0.1.44"
[dependencies.url]
version = "2.5.8"
optional = true
[dependencies.uuid]
version = "1.26.1"
features = [
"v4",
"v4",
]
default-features = false
[dependencies.walkdir]
version = "2.5.0"
[dependencies.zeroize]
version = "1.8.2"
[dev-dependencies.axum]
version = "0.8.9"
features = [
"macros",
"ws",
]
[dev-dependencies.criterion]
version = "0.8.2"
features = ["async_tokio"]
default-features = false
[dev-dependencies.diesel]
version = "=2.3.13"
features = [
"sqlite",
"returning_clauses_for_sqlite_3_35",
]
default-features = false
[dev-dependencies.mutants]
version = "0.0.4"
[dev-dependencies.proptest]
version = "1.11.0"
[dev-dependencies.rand]
version = "0.10.1"
[dev-dependencies.sea-orm]
version = "=2.0.3"
features = [
"macros",
"runtime-tokio-rustls",
"sqlx-sqlite",
"sqlite-use-returning-for-3_35",
]
default-features = false
[dev-dependencies.testcontainers]
version = "0.27.3"
[dev-dependencies.testcontainers-modules]
version = "0.15.0"
features = [
"postgres",
"mysql",
"mariadb",
"mongo",
"surrealdb",
]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(kani)",
"cfg(mutants)",
]