[package]
edition = "2021"
rust-version = "1.87"
name = "motedb"
version = "0.7.5"
authors = ["motedb <motedb@126.com>"]
build = false
exclude = [
"docs/superpowers/",
"docs/benchmark_report_*",
"docs/optimization*",
"motedb_data.mote/",
"fuzz/",
"BENCHMARK.md",
"BENCHMARK_REPORT.md",
"PERFORMANCE_REPORT.md",
"SCALING.md",
"COMPETITIVE_ANALYSIS.md",
"MULTIMODAL_COMPETITIVE_ANALYSIS.md",
"RELEASE-v0.2.0.md",
]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "AI-native embedded multimodal database for embodied intelligence (robots, AR glasses, industrial arms)."
homepage = "https://github.com/motedb/motedb"
documentation = "https://docs.rs/motedb"
readme = "README.md"
keywords = [
"database",
"embedded",
"vector",
"multimodal",
]
categories = [
"database",
"embedded",
"algorithms",
]
license = "MIT"
repository = "https://github.com/motedb/motedb"
[features]
default = [
"tokenizer-jieba",
"rayon",
"jemalloc",
]
default-edge = ["jemalloc"]
jemalloc = [
"tikv-jemallocator",
"tikv-jemalloc-ctl",
]
mem-profiling = [
"tikv-jemallocator",
"tikv-jemalloc-ctl",
]
rayon = ["dep:rayon"]
tokenizer-all = ["tokenizer-jieba"]
tokenizer-jieba = ["jieba-rs"]
[lib]
name = "motedb"
crate-type = [
"rlib",
"staticlib",
"cdylib",
]
path = "src/lib.rs"
[[bin]]
name = "motedb-cli"
path = "src/bin/motedb-cli.rs"
[[example]]
name = "bench_300k"
path = "examples/bench_300k.rs"
[[example]]
name = "bench_memory"
path = "examples/bench_memory.rs"
[[example]]
name = "bench_multimodal_vs_competitors"
path = "examples/bench_multimodal_vs_competitors.rs"
[[example]]
name = "bench_stability"
path = "examples/bench_stability.rs"
[[example]]
name = "bench_vs_sqlite"
path = "examples/bench_vs_sqlite.rs"
[[example]]
name = "crud"
path = "examples/crud.rs"
[[example]]
name = "hello_world"
path = "examples/hello_world.rs"
[[example]]
name = "logging"
path = "examples/logging.rs"
[[test]]
name = "acid_test"
path = "tests/acid_test.rs"
[[test]]
name = "bench_2m"
path = "tests/bench_2m.rs"
[[test]]
name = "bench_acid"
path = "tests/bench_acid.rs"
[[test]]
name = "bench_batch_ops"
path = "tests/bench_batch_ops.rs"
[[test]]
name = "bench_compare"
path = "tests/bench_compare.rs"
[[test]]
name = "bench_comprehensive"
path = "tests/bench_comprehensive.rs"
[[test]]
name = "bench_concurrent"
path = "tests/bench_concurrent.rs"
[[test]]
name = "bench_index_ops"
path = "tests/bench_index_ops.rs"
[[test]]
name = "bench_multimodal"
path = "tests/bench_multimodal.rs"
[[test]]
name = "bench_multimodal_full"
path = "tests/bench_multimodal_full.rs"
[[test]]
name = "bench_multimodal_ops"
path = "tests/bench_multimodal_ops.rs"
[[test]]
name = "bench_perf_report"
path = "tests/bench_perf_report.rs"
[[test]]
name = "bench_quick_baseline"
path = "tests/bench_quick_baseline.rs"
[[test]]
name = "bench_release"
path = "tests/bench_release.rs"
[[test]]
name = "bench_report"
path = "tests/bench_report.rs"
[[test]]
name = "bench_resource"
path = "tests/bench_resource.rs"
[[test]]
name = "bench_sql_queries"
path = "tests/bench_sql_queries.rs"
[[test]]
name = "bench_timeseries_index"
path = "tests/bench_timeseries_index.rs"
[[test]]
name = "bench_v060_report"
path = "tests/bench_v060_report.rs"
[[test]]
name = "bench_vs_sqlite_100k"
path = "tests/bench_vs_sqlite_100k.rs"
[[test]]
name = "bench_vs_sqlite_v05"
path = "tests/bench_vs_sqlite_v05.rs"
[[test]]
name = "perf_test"
path = "tests/perf_test.rs"
[[test]]
name = "stress_300k"
path = "tests/stress_300k.rs"
[[test]]
name = "stress_test"
path = "tests/stress_test.rs"
[[test]]
name = "test_acid_audit"
path = "tests/test_acid_audit.rs"
[[test]]
name = "test_acid_comprehensive"
path = "tests/test_acid_comprehensive.rs"
[[test]]
name = "test_advanced_hunt"
path = "tests/test_advanced_hunt.rs"
[[test]]
name = "test_api_correctness"
path = "tests/test_api_correctness.rs"
[[test]]
name = "test_btree_integrity"
path = "tests/test_btree_integrity.rs"
[[test]]
name = "test_bug_hunt"
path = "tests/test_bug_hunt.rs"
[[test]]
name = "test_bug_hunt2"
path = "tests/test_bug_hunt2.rs"
[[test]]
name = "test_bug_hunt3"
path = "tests/test_bug_hunt3.rs"
[[test]]
name = "test_bug_hunt4"
path = "tests/test_bug_hunt4.rs"
[[test]]
name = "test_bug_hunt5"
path = "tests/test_bug_hunt5.rs"
[[test]]
name = "test_bug_hunt6"
path = "tests/test_bug_hunt6.rs"
[[test]]
name = "test_bug_hunt7"
path = "tests/test_bug_hunt7.rs"
[[test]]
name = "test_bug_hunt_v10"
path = "tests/test_bug_hunt_v10.rs"
[[test]]
name = "test_bug_hunt_v11"
path = "tests/test_bug_hunt_v11.rs"
[[test]]
name = "test_bug_hunt_v12"
path = "tests/test_bug_hunt_v12.rs"
[[test]]
name = "test_bug_hunt_v13"
path = "tests/test_bug_hunt_v13.rs"
[[test]]
name = "test_bug_hunt_v14"
path = "tests/test_bug_hunt_v14.rs"
[[test]]
name = "test_bug_hunt_v15"
path = "tests/test_bug_hunt_v15.rs"
[[test]]
name = "test_bug_hunt_v16"
path = "tests/test_bug_hunt_v16.rs"
[[test]]
name = "test_bug_hunt_v17_cte"
path = "tests/test_bug_hunt_v17_cte.rs"
[[test]]
name = "test_bug_hunt_v18"
path = "tests/test_bug_hunt_v18.rs"
[[test]]
name = "test_bug_hunt_v19"
path = "tests/test_bug_hunt_v19.rs"
[[test]]
name = "test_bug_hunt_v2"
path = "tests/test_bug_hunt_v2.rs"
[[test]]
name = "test_bug_hunt_v20"
path = "tests/test_bug_hunt_v20.rs"
[[test]]
name = "test_bug_hunt_v21"
path = "tests/test_bug_hunt_v21.rs"
[[test]]
name = "test_bug_hunt_v22"
path = "tests/test_bug_hunt_v22.rs"
[[test]]
name = "test_bug_hunt_v23"
path = "tests/test_bug_hunt_v23.rs"
[[test]]
name = "test_bug_hunt_v24"
path = "tests/test_bug_hunt_v24.rs"
[[test]]
name = "test_bug_hunt_v25"
path = "tests/test_bug_hunt_v25.rs"
[[test]]
name = "test_bug_hunt_v26"
path = "tests/test_bug_hunt_v26.rs"
[[test]]
name = "test_bug_hunt_v27"
path = "tests/test_bug_hunt_v27.rs"
[[test]]
name = "test_bug_hunt_v28"
path = "tests/test_bug_hunt_v28.rs"
[[test]]
name = "test_bug_hunt_v29"
path = "tests/test_bug_hunt_v29.rs"
[[test]]
name = "test_bug_hunt_v3"
path = "tests/test_bug_hunt_v3.rs"
[[test]]
name = "test_bug_hunt_v30"
path = "tests/test_bug_hunt_v30.rs"
[[test]]
name = "test_bug_hunt_v31"
path = "tests/test_bug_hunt_v31.rs"
[[test]]
name = "test_bug_hunt_v32"
path = "tests/test_bug_hunt_v32.rs"
[[test]]
name = "test_bug_hunt_v33"
path = "tests/test_bug_hunt_v33.rs"
[[test]]
name = "test_bug_hunt_v34"
path = "tests/test_bug_hunt_v34.rs"
[[test]]
name = "test_bug_hunt_v35"
path = "tests/test_bug_hunt_v35.rs"
[[test]]
name = "test_bug_hunt_v36"
path = "tests/test_bug_hunt_v36.rs"
[[test]]
name = "test_bug_hunt_v38"
path = "tests/test_bug_hunt_v38.rs"
[[test]]
name = "test_bug_hunt_v39"
path = "tests/test_bug_hunt_v39.rs"
[[test]]
name = "test_bug_hunt_v4"
path = "tests/test_bug_hunt_v4.rs"
[[test]]
name = "test_bug_hunt_v40"
path = "tests/test_bug_hunt_v40.rs"
[[test]]
name = "test_bug_hunt_v43"
path = "tests/test_bug_hunt_v43.rs"
[[test]]
name = "test_bug_hunt_v45"
path = "tests/test_bug_hunt_v45.rs"
[[test]]
name = "test_bug_hunt_v48"
path = "tests/test_bug_hunt_v48.rs"
[[test]]
name = "test_bug_hunt_v49"
path = "tests/test_bug_hunt_v49.rs"
[[test]]
name = "test_bug_hunt_v5"
path = "tests/test_bug_hunt_v5.rs"
[[test]]
name = "test_bug_hunt_v50"
path = "tests/test_bug_hunt_v50.rs"
[[test]]
name = "test_bug_hunt_v51"
path = "tests/test_bug_hunt_v51.rs"
[[test]]
name = "test_bug_hunt_v52"
path = "tests/test_bug_hunt_v52.rs"
[[test]]
name = "test_bug_hunt_v53"
path = "tests/test_bug_hunt_v53.rs"
[[test]]
name = "test_bug_hunt_v54"
path = "tests/test_bug_hunt_v54.rs"
[[test]]
name = "test_bug_hunt_v55"
path = "tests/test_bug_hunt_v55.rs"
[[test]]
name = "test_bug_hunt_v56"
path = "tests/test_bug_hunt_v56.rs"
[[test]]
name = "test_bug_hunt_v57"
path = "tests/test_bug_hunt_v57.rs"
[[test]]
name = "test_bug_hunt_v58"
path = "tests/test_bug_hunt_v58.rs"
[[test]]
name = "test_bug_hunt_v59"
path = "tests/test_bug_hunt_v59.rs"
[[test]]
name = "test_bug_hunt_v6"
path = "tests/test_bug_hunt_v6.rs"
[[test]]
name = "test_bug_hunt_v60"
path = "tests/test_bug_hunt_v60.rs"
[[test]]
name = "test_bug_hunt_v61"
path = "tests/test_bug_hunt_v61.rs"
[[test]]
name = "test_bug_hunt_v62"
path = "tests/test_bug_hunt_v62.rs"
[[test]]
name = "test_bug_hunt_v63"
path = "tests/test_bug_hunt_v63.rs"
[[test]]
name = "test_bug_hunt_v64"
path = "tests/test_bug_hunt_v64.rs"
[[test]]
name = "test_bug_hunt_v65"
path = "tests/test_bug_hunt_v65.rs"
[[test]]
name = "test_bug_hunt_v66"
path = "tests/test_bug_hunt_v66.rs"
[[test]]
name = "test_bug_hunt_v67"
path = "tests/test_bug_hunt_v67.rs"
[[test]]
name = "test_bug_hunt_v68"
path = "tests/test_bug_hunt_v68.rs"
[[test]]
name = "test_bug_hunt_v69"
path = "tests/test_bug_hunt_v69.rs"
[[test]]
name = "test_bug_hunt_v7"
path = "tests/test_bug_hunt_v7.rs"
[[test]]
name = "test_bug_hunt_v70"
path = "tests/test_bug_hunt_v70.rs"
[[test]]
name = "test_bug_hunt_v71"
path = "tests/test_bug_hunt_v71.rs"
[[test]]
name = "test_bug_hunt_v72"
path = "tests/test_bug_hunt_v72.rs"
[[test]]
name = "test_bug_hunt_v73"
path = "tests/test_bug_hunt_v73.rs"
[[test]]
name = "test_bug_hunt_v74"
path = "tests/test_bug_hunt_v74.rs"
[[test]]
name = "test_bug_hunt_v75"
path = "tests/test_bug_hunt_v75.rs"
[[test]]
name = "test_bug_hunt_v76"
path = "tests/test_bug_hunt_v76.rs"
[[test]]
name = "test_bug_hunt_v77"
path = "tests/test_bug_hunt_v77.rs"
[[test]]
name = "test_bug_hunt_v78"
path = "tests/test_bug_hunt_v78.rs"
[[test]]
name = "test_bug_hunt_v79"
path = "tests/test_bug_hunt_v79.rs"
[[test]]
name = "test_bug_hunt_v8"
path = "tests/test_bug_hunt_v8.rs"
[[test]]
name = "test_bug_hunt_v80"
path = "tests/test_bug_hunt_v80.rs"
[[test]]
name = "test_bug_hunt_v81"
path = "tests/test_bug_hunt_v81.rs"
[[test]]
name = "test_bug_hunt_v82"
path = "tests/test_bug_hunt_v82.rs"
[[test]]
name = "test_bug_hunt_v83"
path = "tests/test_bug_hunt_v83.rs"
[[test]]
name = "test_bug_hunt_v84"
path = "tests/test_bug_hunt_v84.rs"
[[test]]
name = "test_bug_hunt_v85"
path = "tests/test_bug_hunt_v85.rs"
[[test]]
name = "test_bug_hunt_v86"
path = "tests/test_bug_hunt_v86.rs"
[[test]]
name = "test_bug_hunt_v87"
path = "tests/test_bug_hunt_v87.rs"
[[test]]
name = "test_bug_hunt_v88"
path = "tests/test_bug_hunt_v88.rs"
[[test]]
name = "test_bug_hunt_v89"
path = "tests/test_bug_hunt_v89.rs"
[[test]]
name = "test_bug_hunt_v9"
path = "tests/test_bug_hunt_v9.rs"
[[test]]
name = "test_bug_hunt_v90"
path = "tests/test_bug_hunt_v90.rs"
[[test]]
name = "test_bug_hunt_v91"
path = "tests/test_bug_hunt_v91.rs"
[[test]]
name = "test_bug_hunt_v92"
path = "tests/test_bug_hunt_v92.rs"
[[test]]
name = "test_bug_hunt_v93"
path = "tests/test_bug_hunt_v93.rs"
[[test]]
name = "test_bug_hunt_v94"
path = "tests/test_bug_hunt_v94.rs"
[[test]]
name = "test_bug_hunt_v95"
path = "tests/test_bug_hunt_v95.rs"
[[test]]
name = "test_bug_hunt_v96"
path = "tests/test_bug_hunt_v96.rs"
[[test]]
name = "test_bug_hunt_v97"
path = "tests/test_bug_hunt_v97.rs"
[[test]]
name = "test_bug_hunt_v98"
path = "tests/test_bug_hunt_v98.rs"
[[test]]
name = "test_col_segment"
path = "tests/test_col_segment.rs"
[[test]]
name = "test_col_segment_fastpaths"
path = "tests/test_col_segment_fastpaths.rs"
[[test]]
name = "test_columnar"
path = "tests/test_columnar.rs"
[[test]]
name = "test_columnar_acid"
path = "tests/test_columnar_acid.rs"
[[test]]
name = "test_compaction_integrity"
path = "tests/test_compaction_integrity.rs"
[[test]]
name = "test_comprehensive"
path = "tests/test_comprehensive.rs"
[[test]]
name = "test_comprehensive_audit"
path = "tests/test_comprehensive_audit.rs"
[[test]]
name = "test_concurrent_stress"
path = "tests/test_concurrent_stress.rs"
[[test]]
name = "test_crash_recovery"
path = "tests/test_crash_recovery.rs"
[[test]]
name = "test_data_types"
path = "tests/test_data_types.rs"
[[test]]
name = "test_deep_edge"
path = "tests/test_deep_edge.rs"
[[test]]
name = "test_delete_persist"
path = "tests/test_delete_persist.rs"
[[test]]
name = "test_disk_usage"
path = "tests/test_disk_usage.rs"
[[test]]
name = "test_durability"
path = "tests/test_durability.rs"
[[test]]
name = "test_e2e_crash_and_stress"
path = "tests/test_e2e_crash_and_stress.rs"
[[test]]
name = "test_edge_cases"
path = "tests/test_edge_cases.rs"
[[test]]
name = "test_edge_semantics"
path = "tests/test_edge_semantics.rs"
[[test]]
name = "test_extreme_hunt"
path = "tests/test_extreme_hunt.rs"
[[test]]
name = "test_fast_paths"
path = "tests/test_fast_paths.rs"
[[test]]
name = "test_index_robustness"
path = "tests/test_index_robustness.rs"
[[test]]
name = "test_ioctree"
path = "tests/test_ioctree.rs"
[[test]]
name = "test_isolation_levels"
path = "tests/test_isolation_levels.rs"
[[test]]
name = "test_memory_leak"
path = "tests/test_memory_leak.rs"
[[test]]
name = "test_memory_linear"
path = "tests/test_memory_linear.rs"
[[test]]
name = "test_multimodal"
path = "tests/test_multimodal.rs"
[[test]]
name = "test_multimodal_e2e"
path = "tests/test_multimodal_e2e.rs"
[[test]]
name = "test_mvcc_isolation"
path = "tests/test_mvcc_isolation.rs"
[[test]]
name = "test_mvcc_recovery"
path = "tests/test_mvcc_recovery.rs"
[[test]]
name = "test_no_bloat"
path = "tests/test_no_bloat.rs"
[[test]]
name = "test_optimization_regression"
path = "tests/test_optimization_regression.rs"
[[test]]
name = "test_performance_guarantees"
path = "tests/test_performance_guarantees.rs"
[[test]]
name = "test_public_api"
path = "tests/test_public_api.rs"
[[test]]
name = "test_range_count"
path = "tests/test_range_count.rs"
[[test]]
name = "test_release_readiness"
path = "tests/test_release_readiness.rs"
[[test]]
name = "test_repro12"
path = "tests/test_repro12.rs"
[[test]]
name = "test_row_api"
path = "tests/test_row_api.rs"
[[test]]
name = "test_scalability"
path = "tests/test_scalability.rs"
[[test]]
name = "test_scan_integrity"
path = "tests/test_scan_integrity.rs"
[[test]]
name = "test_semantic_edges"
path = "tests/test_semantic_edges.rs"
[[test]]
name = "test_sql_advanced"
path = "tests/test_sql_advanced.rs"
[[test]]
name = "test_sql_correctness"
path = "tests/test_sql_correctness.rs"
[[test]]
name = "test_sql_correctness_part2"
path = "tests/test_sql_correctness_part2.rs"
[[test]]
name = "test_sql_ddl_features"
path = "tests/test_sql_ddl_features.rs"
[[test]]
name = "test_sql_errors_edges"
path = "tests/test_sql_errors_edges.rs"
[[test]]
name = "test_sql_functions"
path = "tests/test_sql_functions.rs"
[[test]]
name = "test_sql_groupby"
path = "tests/test_sql_groupby.rs"
[[test]]
name = "test_sql_joins"
path = "tests/test_sql_joins.rs"
[[test]]
name = "test_sql_scenarios"
path = "tests/test_sql_scenarios.rs"
[[test]]
name = "test_storage_integrity"
path = "tests/test_storage_integrity.rs"
[[test]]
name = "test_stress"
path = "tests/test_stress.rs"
[[test]]
name = "test_stress_hunt"
path = "tests/test_stress_hunt.rs"
[[test]]
name = "test_timeseries_index"
path = "tests/test_timeseries_index.rs"
[[test]]
name = "test_update_perf"
path = "tests/test_update_perf.rs"
[[test]]
name = "test_v050_features"
path = "tests/test_v050_features.rs"
[[test]]
name = "test_vector_spatial_text"
path = "tests/test_vector_spatial_text.rs"
[[test]]
name = "test_wide_tables"
path = "tests/test_wide_tables.rs"
[dependencies.arc-swap]
version = "1.7"
[dependencies.bincode]
version = "1.3"
[dependencies.crc32fast]
version = "1.4"
[dependencies.dashmap]
version = "6.1.0"
[dependencies.jieba-rs]
version = "0.7"
optional = true
[dependencies.libc]
version = "0.2"
[dependencies.log]
version = "0.4"
[dependencies.lru]
version = "0.16"
[dependencies.memmap2]
version = "0.9"
[dependencies.parking_lot]
version = "0.12"
[dependencies.phf]
version = "0.11"
features = ["macros"]
[dependencies.rand]
version = "0.8"
[dependencies.rayon]
version = "1.8"
optional = true
[dependencies.roaring]
version = "0.10"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.snap]
version = "1.1"
[dependencies.thiserror]
version = "1.0"
[dependencies.tikv-jemalloc-ctl]
version = "0.5"
optional = true
[dependencies.tikv-jemallocator]
version = "0.5"
features = [
"background_threads",
"unprefixed_malloc_on_supported_platforms",
]
optional = true
[dependencies.zstd]
version = "0.13"
[dev-dependencies.clap]
version = "4.4"
features = ["derive"]
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.rusqlite]
version = "0.31"
features = ["bundled"]
[dev-dependencies.tempfile]
version = "3.0"
[dev-dependencies.tikv-jemalloc-ctl]
version = "0.5"
[dev-dependencies.tikv-jemallocator]
version = "0.5"
[profile.production]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"
inherits = "release"
strip = true
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 16
strip = true
[profile.release-small]
opt-level = "z"
lto = "fat"
inherits = "release"
[profile.release-test]
inherits = "release"