[workspace] members = [".", "sea-orm-macros", "sea-orm-codegen", "sea-orm-arrow"] [package] authors = ["Chris Tsang "] categories = ["database"] description = "🐚 An async & dynamic ORM for Rust" documentation = "https://docs.rs/sea-orm" edition = "2024" homepage = "https://www.sea-ql.org/SeaORM" keywords = ["async", "orm", "mysql", "postgres", "sqlite"] license = "MIT OR Apache-2.0" name = "sea-orm" repository = "https://github.com/SeaQL/sea-orm" rust-version = "1.94.0" version = "2.0.0" [package.metadata.docs.rs] features = [ "default", "sqlx-all", "mock", "proxy", "rbac", "schema-sync", "tracing-spans", "runtime-tokio-native-tls", "postgres-array", "postgres-vector", "with-ipnetwork", "with-arrow", "stream", ] rustdoc-args = ["--cfg", "docsrs"] [lib] name = "sea_orm" path = "src/lib.rs" [dependencies] async-stream = { version = "0.3", default-features = false } async-trait = { version = "0.1", default-features = false } bigdecimal = { version = "0.4", default-features = false, features = [ "std", ], optional = true } chrono = { version = "0.4.30", default-features = false, optional = true } derive-where = "1.6.1" derive_more = { version = "2", features = ["debug"] } futures-util = { version = "0.3", default-features = false, features = [ "std", ] } inventory = { version = "0.3", optional = true } ipnetwork = { version = "0.21", default-features = false, optional = true, features = [ "serde", ] } itertools = "0.14.0" log = { version = "0.4", default-features = false } mac_address = { version = "1.1", default-features = false, optional = true } ouroboros = { version = "0.18", default-features = false, optional = true } pgvector = { version = "~0.4", default-features = false, optional = true } rust_decimal = { version = "1", default-features = false, features = [ "std", ], optional = true } sea-orm-arrow = { version = "2.0.0-rc", path = "sea-orm-arrow", default-features = false, optional = true } sea-orm-macros = { version = "~2.0.0", path = "sea-orm-macros", default-features = false, features = [ "async", "strum", ] } sea-query = { version = "~1.0.0", default-features = false, features = [ "thread-safe", "hashable-value", "backend-mysql", "backend-postgres", "backend-sqlite", "sea-orm", ] } sea-query-sqlx = { version = "0.9", default-features = false, optional = true } sea-schema = { version = "0.18.1", default-features = false, features = [ "discovery", "writer", "probe", ], optional = true } serde = { version = "1.0", default-features = false, optional = true } serde_json = { version = "1.0", default-features = false, optional = true } sqlx = { version = "0.9.0", default-features = false, optional = true } sqlx-core = { version = "0.9.0", default-features = false, optional = true } strum = { version = "0.28", default-features = false } thiserror = { version = "2", default-features = false } time = { version = "0.3.36", default-features = false, optional = true } tracing = { version = "0.1", default-features = false, features = [ "attributes", "log", ] } url = { version = "2.2", default-features = false } uuid = { version = "1", default-features = false, optional = true } [target.'cfg(target_arch = "wasm32")'.dependencies] web-time = { version = "1.1.0", default-features = false } [dev-dependencies] dotenv = "0.15" maplit = { version = "1" } pretty_assertions = { version = "0.7" } sea-orm = { path = ".", features = [ "debug-print", "mock", "postgres-array", "tests-cfg", ] } smol = { version = "1.2" } smol-potat = { version = "1.1" } time = { version = "0.3.36", features = ["macros"] } tokio = { version = "1.6", features = ["full"] } tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } uuid = { version = "1", features = ["v4"] } [features] debug-print = [] default = [ "macros", "with-json", "with-chrono", "with-rust_decimal", "with-uuid", "with-time", "sqlite-use-returning-for-3_35", "stream", ] entity-registry = ["inventory", "sea-orm-macros/entity-registry"] json-array = [ "postgres-array", ] # this does not actually enable sqlx-postgres, but only a few traits to support array in sea-query macros = ["sea-orm-macros/derive"] mariadb-use-returning = [] mock = [] postgres-array = [ "sea-query/postgres-array", "sea-orm-macros/postgres-array", "sea-query-sqlx?/postgres-array", ] postgres-use-serial-pk = ["sea-query/option-postgres-use-serial"] postgres-vector = [ "pgvector", "sea-query/postgres-vector", "sea-query-sqlx?/postgres-vector", ] proxy = ["serde/derive"] rbac = ["sea-query/audit", "macros"] runtime-async-std = ["sqlx?/runtime-async-std"] runtime-async-std-native-tls = ["sqlx?/tls-native-tls", "runtime-async-std"] runtime-async-std-rustls = ["sqlx?/tls-rustls", "runtime-async-std"] runtime-tokio = ["sqlx?/runtime-tokio"] runtime-tokio-native-tls = ["sqlx?/tls-native-tls", "runtime-tokio"] runtime-tokio-rustls = ["sqlx?/tls-rustls", "runtime-tokio"] rusqlite = [] schema-sync = ["sea-schema"] sea-orm-internal = [] seaography = ["sea-orm-macros/seaography"] serde = ["dep:serde", "serde/derive", "uuid?/serde"] sqlite-no-row-value-before-3_15 = [] sqlite-use-returning-for-3_35 = [] sqlx-all = ["sqlx-mysql", "sqlx-postgres", "sqlx-sqlite"] sqlx-dep = ["sqlx", "sqlx-core"] sqlx-mysql = [ "sqlx-dep", "sea-query-sqlx/sqlx-mysql", "sea-schema?/sqlx-mysql", ] sqlx-postgres = [ "sqlx-dep", "sea-orm-macros/sqlx-postgres", "sea-query-sqlx/sqlx-postgres", "postgres-array", "sea-schema?/sqlx-postgres", ] sqlx-sqlite = [ "sqlx-dep", "sea-query-sqlx/sqlx-sqlite", "sea-schema?/sqlx-sqlite", ] stream = ["dep:ouroboros"] sync = [] tests-cfg = ["serde/derive"] tests-features = [ "default", "postgres-array", "rbac", "schema-sync", "with-arrow", "with-bigdecimal", "with-ipnetwork", ] tracing-spans = [] with-arrow = ["sea-orm-arrow", "sea-orm-macros/with-arrow"] with-bigdecimal = [ "bigdecimal", "sea-query/with-bigdecimal", "sea-query-sqlx?/with-bigdecimal", "sea-orm-arrow?/with-bigdecimal", ] with-chrono = [ "chrono", "sea-query/with-chrono", "sea-query-sqlx?/with-chrono", "sea-orm-arrow?/with-chrono", ] with-ipnetwork = [ "ipnetwork", "sea-query/with-ipnetwork", "sea-query-sqlx?/with-ipnetwork", ] with-json = [ "dep:serde", "serde_json", "sea-query/with-json", "sea-orm-macros/with-json", "chrono?/serde", "rust_decimal?/serde", "bigdecimal?/serde", "uuid?/serde", "time?/serde", "mac_address?/serde", "pgvector?/serde", "sea-query-sqlx?/with-json", ] with-mac_address = [ "mac_address", "sea-query/with-mac_address", "sea-query-sqlx?/with-mac_address", ] with-rust_decimal = [ "rust_decimal", "sea-query/with-rust_decimal", "sea-query-sqlx?/with-rust_decimal", "sea-orm-arrow?/with-rust_decimal", ] with-time = [ "time", "sea-query/with-time", "sea-query-sqlx?/with-time", "sea-orm-arrow?/with-time", ] with-uuid = ["uuid", "sea-query/with-uuid", "sea-query-sqlx?/with-uuid"] # This allows us to develop using a local version of sea-query [patch.crates-io] # sea-query = { path = "../sea-query" } # sea-query = { git = "https://github.com/SeaQL/sea-query", branch = "master" }