* feat: Add proxy connection type * feat: Add proxy database's proxy functions trait. * fix: Remove some unused impl to fix the unit test * test: Create the proxy by empty declaration. * test: Try to genereate query and exec commands. * perf: Add more query debug trait for debugging. * chore: Add the example for wasi + proxy. * chore: Try to read string from wasmtime vm. * chore: Sucks, but how to do without tokio::spawn? * chore: Complete the basic memory read logic. * chore: Abandon the WASI demo, native demo first... * refactor: Use single proxy connection generator to avoid stack overflow * refactor: Rename the inner structs' name * fix: Fix CI clippy and unit test * fix: Rename the example. * chore: Try to embed surrealdb for proxy test. * fix: Transfer the query result correctly. * refactor: Rename the example. * chore: Ready to add example for wasmtime proxy. * feat: Try to compile sea-orm into wasm binary. But it would failed on wasm32-wasi target because of the socket deps. It can be compiled on wasm32-unknown-unknown target. * fix: WASM targets can't use sqlx. * fix: Try to fix CI by remove toml. * fix: Try to fix CI by remove toml. * fix: Move vm to the example's root dir. * fix: Add a pre-build script. * chore: Add README. * fix: Try to fix CI. * feat: Add proxy logic in wasm module. * fix: Try to run the wasi module. But WASI cannot support multi threads.. so the module was run failed. * refactor: Bump wasmtime to 14. * fix: Now we can use async traits on wasmtime. The solution is add the current thread tag to tokio-wasi. * build: Use build.rs instead of dynamic command. * feat: Add the execute result's transfer logic. * fix: Convert sqlx query result for sea-query. * fix: Now we can transfer wasm's query to outside. * refactor: Convert to ProxyRow first. It's the solution to know the type information about the value. * fix: Multiple time library reference. * feat: Add a new proxy example which uses GlueSQL. * test: Add the test cases for three new examples. Just try to run once... * ci: Add wasm component's compiler for unit test. * ci: Add wasi target. * ci: It may needs wasi target twice... * feat: Add more keys for proxy execute result. To transfer the fully information of the execute result. * fix: Use custom id type instead of json value. * fix: Wrong reference type. * fix: Rewrite the transformer. * perf: Add ToString trait for proxy exec result. * revert: Again. Refs: 9bac6e91ca9df04ccd8368906e1613cfc5b96218 * revert: Back to the basic proxy exec result. Refs: e0330dde73a54d461d5f38c69eec5e13bcc928d4 * refactor: Update GlueSQL and SurrealDB examples. (#1980) * refactor: Bump gluesql to 0.15 Relate to https://github.com/gluesql/gluesql/issues/1438 * Use SQLParser to parse and replace placeholders. * Use SQLParser for surrealdb demo. * Transform the query by SQLParser. * Tweaks * Remove wasmtime example. (#2001) * ci: Add additional targets. * Remove proxy wasmtime example. * Format --------- Co-authored-by: 伊欧 <langyo.china@gmail.com> Co-authored-by: 伊欧 <m13776491897@163.com>
132 lines
5.4 KiB
TOML
132 lines
5.4 KiB
TOML
[workspace]
|
|
members = [".", "sea-orm-macros", "sea-orm-codegen"]
|
|
|
|
[package]
|
|
name = "sea-orm"
|
|
version = "0.12.9"
|
|
authors = ["Chris Tsang <chris.2y3@outlook.com>"]
|
|
edition = "2021"
|
|
description = "🐚 An async & dynamic ORM for Rust"
|
|
license = "MIT OR Apache-2.0"
|
|
homepage = "https://www.sea-ql.org/SeaORM"
|
|
documentation = "https://docs.rs/sea-orm"
|
|
repository = "https://github.com/SeaQL/sea-orm"
|
|
categories = ["database"]
|
|
keywords = ["async", "orm", "mysql", "postgres", "sqlite"]
|
|
rust-version = "1.65"
|
|
|
|
[package.metadata.docs.rs]
|
|
features = ["default", "sqlx-all", "mock", "proxy", "runtime-async-std-native-tls", "postgres-array", "sea-orm-internal"]
|
|
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 }
|
|
chrono = { version = "0.4.30", default-features = false, optional = true }
|
|
time = { version = "0.3", default-features = false, optional = true }
|
|
futures = { version = "0.3", default-features = false, features = ["std"] }
|
|
log = { version = "0.4", default-features = false }
|
|
tracing = { version = "0.1", default-features = false, features = ["attributes", "log"] }
|
|
rust_decimal = { version = "1", default-features = false, optional = true }
|
|
bigdecimal = { version = "0.3", default-features = false, optional = true }
|
|
sea-orm-macros = { version = "0.12.6", path = "sea-orm-macros", default-features = false, features = ["strum"] }
|
|
sea-query = { version = "0.30.4", default-features = false, features = ["thread-safe", "hashable-value", "backend-mysql", "backend-postgres", "backend-sqlite"] }
|
|
sea-query-binder = { version = "0.5.0", default-features = false, optional = true }
|
|
strum = { version = "0.25", default-features = false }
|
|
serde = { version = "1.0", default-features = false }
|
|
serde_json = { version = "1.0", default-features = false, optional = true }
|
|
sqlx = { version = "0.7", default-features = false, optional = true }
|
|
uuid = { version = "1", default-features = false, optional = true }
|
|
ouroboros = { version = "0.17", default-features = false }
|
|
url = { version = "2.2", default-features = false }
|
|
thiserror = { version = "1", default-features = false }
|
|
|
|
[dev-dependencies]
|
|
smol = { version = "1.2" }
|
|
smol-potat = { version = "1.1" }
|
|
async-std = { version = "1", features = ["attributes", "tokio1"] }
|
|
futures = { version = "0.3" }
|
|
tokio = { version = "1.6", features = ["full"] }
|
|
actix-rt = { version = "2.2.0" }
|
|
maplit = { version = "1" }
|
|
rust_decimal_macros = { version = "1" }
|
|
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
|
|
sea-orm = { path = ".", features = ["mock", "debug-print", "tests-cfg", "postgres-array", "sea-orm-internal"] }
|
|
pretty_assertions = { version = "0.7" }
|
|
time = { version = "0.3", features = ["macros"] }
|
|
uuid = { version = "1", features = ["v4"] }
|
|
once_cell = "1.8"
|
|
arraystring = "0.3"
|
|
dotenv = "0.15"
|
|
|
|
[features]
|
|
debug-print = []
|
|
default = [
|
|
"macros",
|
|
"with-json",
|
|
"with-chrono",
|
|
"with-rust_decimal",
|
|
"with-bigdecimal",
|
|
"with-uuid",
|
|
"with-time",
|
|
]
|
|
macros = ["sea-orm-macros/derive"]
|
|
mock = []
|
|
proxy = ["serde_json"]
|
|
with-json = ["serde_json", "sea-query/with-json", "chrono?/serde", "time?/serde", "uuid?/serde", "sea-query-binder?/with-json", "sqlx?/json"]
|
|
with-chrono = ["chrono", "sea-query/with-chrono", "sea-query-binder?/with-chrono", "sqlx?/chrono"]
|
|
with-rust_decimal = ["rust_decimal", "sea-query/with-rust_decimal", "sea-query-binder?/with-rust_decimal", "sqlx?/rust_decimal"]
|
|
with-bigdecimal = ["bigdecimal", "sea-query/with-bigdecimal", "sea-query-binder?/with-bigdecimal", "sqlx?/bigdecimal"]
|
|
with-uuid = ["uuid", "sea-query/with-uuid", "sea-query-binder?/with-uuid", "sqlx?/uuid"]
|
|
with-time = ["time", "sea-query/with-time", "sea-query-binder?/with-time", "sqlx?/time"]
|
|
postgres-array = ["sea-query/postgres-array", "sea-query-binder?/postgres-array", "sea-orm-macros/postgres-array"]
|
|
json-array = ["postgres-array"] # this does not actually enable sqlx-postgres, but only a few traits to support array in sea-query
|
|
sea-orm-internal = []
|
|
sqlx-dep = []
|
|
sqlx-all = ["sqlx-mysql", "sqlx-postgres", "sqlx-sqlite"]
|
|
sqlx-mysql = ["sqlx-dep", "sea-query-binder/sqlx-mysql", "sqlx/mysql"]
|
|
sqlx-postgres = ["sqlx-dep", "sea-query-binder/sqlx-postgres", "sqlx/postgres", "postgres-array"]
|
|
sqlx-sqlite = ["sqlx-dep", "sea-query-binder/sqlx-sqlite", "sqlx/sqlite"]
|
|
runtime-async-std = []
|
|
runtime-async-std-native-tls = [
|
|
"sqlx?/runtime-async-std-native-tls",
|
|
"sea-query-binder?/runtime-async-std-native-tls",
|
|
"runtime-async-std",
|
|
]
|
|
runtime-async-std-rustls = [
|
|
"sqlx?/runtime-async-std-rustls",
|
|
"sea-query-binder?/runtime-async-std-rustls",
|
|
"runtime-async-std",
|
|
]
|
|
runtime-actix = []
|
|
runtime-actix-native-tls = [
|
|
"sqlx?/runtime-tokio-native-tls",
|
|
"sea-query-binder?/runtime-actix-native-tls",
|
|
"runtime-actix",
|
|
]
|
|
runtime-actix-rustls = [
|
|
"sqlx?/runtime-tokio-rustls",
|
|
"sea-query-binder?/runtime-actix-rustls",
|
|
"runtime-actix",
|
|
]
|
|
runtime-tokio = []
|
|
runtime-tokio-native-tls = [
|
|
"sqlx?/runtime-tokio-native-tls",
|
|
"sea-query-binder?/runtime-tokio-native-tls",
|
|
"runtime-tokio",
|
|
]
|
|
runtime-tokio-rustls = [
|
|
"sqlx?/runtime-tokio-rustls",
|
|
"sea-query-binder?/runtime-tokio-rustls",
|
|
"runtime-tokio",
|
|
]
|
|
tests-cfg = ["serde/derive"]
|
|
seaography = ["sea-orm-macros/seaography"]
|
|
|
|
# This allows us to develop using a local version of sea-query
|
|
# [patch.crates-io]
|
|
# sea-query = { path = "../sea-query" } |