[package]
edition = "2021"
name = "stoolap"
version = "0.3.2"
authors = ["Stoolap Contributors"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance embedded SQL database with MVCC, time-travel queries, and full ACID compliance"
homepage = "https://stoolap.io"
documentation = "https://stoolap.io/docs/"
readme = "README.md"
keywords = [
"database",
"sql",
"embedded",
"mvcc",
"acid",
]
categories = [
"database",
"database-implementations",
]
license = "Apache-2.0"
repository = "https://github.com/stoolap/stoolap"
[features]
cli = [
"clap",
"rustyline",
"comfy-table",
"dirs",
]
default = [
"cli",
"parallel",
]
dhat-heap = []
duckdb = ["dep:duckdb"]
mimalloc = ["dep:mimalloc"]
parallel = ["dep:rayon"]
sqlite = ["dep:rusqlite"]
wasm = []
[lib]
name = "stoolap"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[bin]]
name = "stoolap"
path = "src/bin/stoolap.rs"
required-features = ["cli"]
[[example]]
name = "benchmark"
path = "examples/benchmark.rs"
[[example]]
name = "benchmark_duckdb"
path = "examples/benchmark_duckdb.rs"
required-features = ["duckdb"]
[[example]]
name = "benchmark_sqlite"
path = "examples/benchmark_sqlite.rs"
required-features = ["sqlite"]
[[test]]
name = "adaptive_execution_test"
path = "tests/adaptive_execution_test.rs"
[[test]]
name = "aggregate_functions_test"
path = "tests/aggregate_functions_test.rs"
[[test]]
name = "aggregate_order_test"
path = "tests/aggregate_order_test.rs"
[[test]]
name = "aggregation_advanced_test"
path = "tests/aggregation_advanced_test.rs"
[[test]]
name = "aggregation_test"
path = "tests/aggregation_test.rs"
[[test]]
name = "arena_slot_reuse_test"
path = "tests/arena_slot_reuse_test.rs"
[[test]]
name = "as_of_test"
path = "tests/as_of_test.rs"
[[test]]
name = "auto_increment_test"
path = "tests/auto_increment_test.rs"
[[test]]
name = "bitmap_index_sql_test"
path = "tests/bitmap_index_sql_test.rs"
[[test]]
name = "bitwise_operators_test"
path = "tests/bitwise_operators_test.rs"
[[test]]
name = "btree_index_sql_test"
path = "tests/btree_index_sql_test.rs"
[[test]]
name = "bug_unique_index_test"
path = "tests/bug_unique_index_test.rs"
[[test]]
name = "bugs2_regression_test"
path = "tests/bugs2_regression_test.rs"
[[test]]
name = "bugs3_regression_test"
path = "tests/bugs3_regression_test.rs"
[[test]]
name = "bugs4_regression_test"
path = "tests/bugs4_regression_test.rs"
[[test]]
name = "bugs5_regression_test"
path = "tests/bugs5_regression_test.rs"
[[test]]
name = "bugs6_regression_test"
path = "tests/bugs6_regression_test.rs"
[[test]]
name = "bugs7_regression_test"
path = "tests/bugs7_regression_test.rs"
[[test]]
name = "bugs8_regression_test"
path = "tests/bugs8_regression_test.rs"
[[test]]
name = "bugs9_regression_test"
path = "tests/bugs9_regression_test.rs"
[[test]]
name = "bugs_regression_test"
path = "tests/bugs_regression_test.rs"
[[test]]
name = "cardinality_feedback_test"
path = "tests/cardinality_feedback_test.rs"
[[test]]
name = "case_expression_test"
path = "tests/case_expression_test.rs"
[[test]]
name = "cast_column_alias_test"
path = "tests/cast_column_alias_test.rs"
[[test]]
name = "cast_simple_test"
path = "tests/cast_simple_test.rs"
[[test]]
name = "cast_test"
path = "tests/cast_test.rs"
[[test]]
name = "cast_where_clause_test"
path = "tests/cast_where_clause_test.rs"
[[test]]
name = "coalesce_test"
path = "tests/coalesce_test.rs"
[[test]]
name = "collate_function_test"
path = "tests/collate_function_test.rs"
[[test]]
name = "collate_test"
path = "tests/collate_test.rs"
[[test]]
name = "column_alias_select_test"
path = "tests/column_alias_select_test.rs"
[[test]]
name = "column_alias_test"
path = "tests/column_alias_test.rs"
[[test]]
name = "column_alias_where_basic_test"
path = "tests/column_alias_where_basic_test.rs"
[[test]]
name = "column_alias_where_test"
path = "tests/column_alias_where_test.rs"
[[test]]
name = "correlated_subquery_test"
path = "tests/correlated_subquery_test.rs"
[[test]]
name = "count_aggregate_test"
path = "tests/count_aggregate_test.rs"
[[test]]
name = "count_with_index_test"
path = "tests/count_with_index_test.rs"
[[test]]
name = "cte_advanced_test"
path = "tests/cte_advanced_test.rs"
[[test]]
name = "cte_coverage_test"
path = "tests/cte_coverage_test.rs"
[[test]]
name = "cte_exists_totals_test"
path = "tests/cte_exists_totals_test.rs"
[[test]]
name = "cte_expression_alias_test"
path = "tests/cte_expression_alias_test.rs"
[[test]]
name = "cte_filtering_test"
path = "tests/cte_filtering_test.rs"
[[test]]
name = "cte_simple_alias_test"
path = "tests/cte_simple_alias_test.rs"
[[test]]
name = "cte_test"
path = "tests/cte_test.rs"
[[test]]
name = "data_type_validation_test"
path = "tests/data_type_validation_test.rs"
[[test]]
name = "date_format_test"
path = "tests/date_format_test.rs"
[[test]]
name = "date_time_parsing_test"
path = "tests/date_time_parsing_test.rs"
[[test]]
name = "date_time_timestamp_test"
path = "tests/date_time_timestamp_test.rs"
[[test]]
name = "ddl_transaction_test"
path = "tests/ddl_transaction_test.rs"
[[test]]
name = "delete_test"
path = "tests/delete_test.rs"
[[test]]
name = "dirty_read_test"
path = "tests/dirty_read_test.rs"
[[test]]
name = "distinct_test"
path = "tests/distinct_test.rs"
[[test]]
name = "dml_function_test"
path = "tests/dml_function_test.rs"
[[test]]
name = "dml_verification_test"
path = "tests/dml_verification_test.rs"
[[test]]
name = "duplicate_index_test"
path = "tests/duplicate_index_test.rs"
[[test]]
name = "durability_test"
path = "tests/durability_test.rs"
[[test]]
name = "exists_subquery_test"
path = "tests/exists_subquery_test.rs"
[[test]]
name = "explain_test"
path = "tests/explain_test.rs"
[[test]]
name = "expression_pushdown_test"
path = "tests/expression_pushdown_test.rs"
[[test]]
name = "file_lock_integration_test"
path = "tests/file_lock_integration_test.rs"
[[test]]
name = "filter_pushdown_test"
path = "tests/filter_pushdown_test.rs"
[[test]]
name = "first_last_aggregate_test"
path = "tests/first_last_aggregate_test.rs"
[[test]]
name = "foreign_key_test"
path = "tests/foreign_key_test.rs"
[[test]]
name = "from_row_test"
path = "tests/from_row_test.rs"
[[test]]
name = "hash_index_sql_test"
path = "tests/hash_index_sql_test.rs"
[[test]]
name = "hash_join_test"
path = "tests/hash_join_test.rs"
[[test]]
name = "index_operations_test"
path = "tests/index_operations_test.rs"
[[test]]
name = "index_optimizer_coverage_test"
path = "tests/index_optimizer_coverage_test.rs"
[[test]]
name = "index_optimizer_test"
path = "tests/index_optimizer_test.rs"
[[test]]
name = "insert_select_test"
path = "tests/insert_select_test.rs"
[[test]]
name = "integration_sql_test"
path = "tests/integration_sql_test.rs"
[[test]]
name = "interval_test"
path = "tests/interval_test.rs"
[[test]]
name = "is_null_test"
path = "tests/is_null_test.rs"
[[test]]
name = "isolation_level_test"
path = "tests/isolation_level_test.rs"
[[test]]
name = "join_comprehensive_test"
path = "tests/join_comprehensive_test.rs"
[[test]]
name = "join_optimizer_test"
path = "tests/join_optimizer_test.rs"
[[test]]
name = "join_simple_test"
path = "tests/join_simple_test.rs"
[[test]]
name = "json_sql_test"
path = "tests/json_sql_test.rs"
[[test]]
name = "keyword_column_test"
path = "tests/keyword_column_test.rs"
[[test]]
name = "like_pattern_test"
path = "tests/like_pattern_test.rs"
[[test]]
name = "multi_statement_test"
path = "tests/multi_statement_test.rs"
[[test]]
name = "mvcc_isolation_sql_test"
path = "tests/mvcc_isolation_sql_test.rs"
[[test]]
name = "named_params_test"
path = "tests/named_params_test.rs"
[[test]]
name = "new_functions_test"
path = "tests/new_functions_test.rs"
[[test]]
name = "new_scalar_functions_test"
path = "tests/new_scalar_functions_test.rs"
[[test]]
name = "new_sql_features_test"
path = "tests/new_sql_features_test.rs"
[[test]]
name = "not_operator_test"
path = "tests/not_operator_test.rs"
[[test]]
name = "on_duplicate_key_update_test"
path = "tests/on_duplicate_key_update_test.rs"
[[test]]
name = "order_by_parser_test"
path = "tests/order_by_parser_test.rs"
[[test]]
name = "parallel_execution_tests"
path = "tests/parallel_execution_tests.rs"
[[test]]
name = "parameter_binding_test"
path = "tests/parameter_binding_test.rs"
[[test]]
name = "params_comprehensive_test"
path = "tests/params_comprehensive_test.rs"
[[test]]
name = "parser_edge_cases_test"
path = "tests/parser_edge_cases_test.rs"
[[test]]
name = "persistence_advanced_test"
path = "tests/persistence_advanced_test.rs"
[[test]]
name = "persistence_comprehensive_test"
path = "tests/persistence_comprehensive_test.rs"
[[test]]
name = "persistence_debug_test"
path = "tests/persistence_debug_test.rs"
[[test]]
name = "persistence_index_debug_test"
path = "tests/persistence_index_debug_test.rs"
[[test]]
name = "persistence_test"
path = "tests/persistence_test.rs"
[[test]]
name = "persistence_trace_test"
path = "tests/persistence_trace_test.rs"
[[test]]
name = "persistence_wal_dump2_test"
path = "tests/persistence_wal_dump2_test.rs"
[[test]]
name = "persistence_wal_dump_test"
path = "tests/persistence_wal_dump_test.rs"
[[test]]
name = "pragma_test"
path = "tests/pragma_test.rs"
[[test]]
name = "query_cache_test"
path = "tests/query_cache_test.rs"
[[test]]
name = "query_executor_test"
path = "tests/query_executor_test.rs"
[[test]]
name = "query_optimization_paths_test"
path = "tests/query_optimization_paths_test.rs"
[[test]]
name = "real_world_sql_test"
path = "tests/real_world_sql_test.rs"
[[test]]
name = "recursive_cte_test"
path = "tests/recursive_cte_test.rs"
[[test]]
name = "result_coverage_test"
path = "tests/result_coverage_test.rs"
[[test]]
name = "rollup_cube_test"
path = "tests/rollup_cube_test.rs"
[[test]]
name = "scalar_function_test"
path = "tests/scalar_function_test.rs"
[[test]]
name = "scalar_functions_extended_test"
path = "tests/scalar_functions_extended_test.rs"
[[test]]
name = "scalar_subquery_test"
path = "tests/scalar_subquery_test.rs"
[[test]]
name = "scan_with_where_test"
path = "tests/scan_with_where_test.rs"
[[test]]
name = "select_test"
path = "tests/select_test.rs"
[[test]]
name = "semantic_cache_tests"
path = "tests/semantic_cache_tests.rs"
[[test]]
name = "set_operations_test"
path = "tests/set_operations_test.rs"
[[test]]
name = "show_commands_test"
path = "tests/show_commands_test.rs"
[[test]]
name = "simple_distinct_sql_test"
path = "tests/simple_distinct_sql_test.rs"
[[test]]
name = "simple_distinct_test"
path = "tests/simple_distinct_test.rs"
[[test]]
name = "snapshot_recovery_test"
path = "tests/snapshot_recovery_test.rs"
[[test]]
name = "snapshot_system_test"
path = "tests/snapshot_system_test.rs"
[[test]]
name = "sql_expressions_test"
path = "tests/sql_expressions_test.rs"
[[test]]
name = "sql_literals_test"
path = "tests/sql_literals_test.rs"
[[test]]
name = "statistics_test"
path = "tests/statistics_test.rs"
[[test]]
name = "string_quotes_test"
path = "tests/string_quotes_test.rs"
[[test]]
name = "subquery_advanced_test"
path = "tests/subquery_advanced_test.rs"
[[test]]
name = "subquery_coverage_test"
path = "tests/subquery_coverage_test.rs"
[[test]]
name = "subquery_delete_test"
path = "tests/subquery_delete_test.rs"
[[test]]
name = "subquery_update_test"
path = "tests/subquery_update_test.rs"
[[test]]
name = "time_functions_test"
path = "tests/time_functions_test.rs"
[[test]]
name = "time_trunc_test"
path = "tests/time_trunc_test.rs"
[[test]]
name = "transaction_test"
path = "tests/transaction_test.rs"
[[test]]
name = "truncate_safety_test"
path = "tests/truncate_safety_test.rs"
[[test]]
name = "unique_index_test"
path = "tests/unique_index_test.rs"
[[test]]
name = "unquoted_keyword_column_test"
path = "tests/unquoted_keyword_column_test.rs"
[[test]]
name = "update_arithmetic_test"
path = "tests/update_arithmetic_test.rs"
[[test]]
name = "update_parentheses_test"
path = "tests/update_parentheses_test.rs"
[[test]]
name = "update_test"
path = "tests/update_test.rs"
[[test]]
name = "values_clause_test"
path = "tests/values_clause_test.rs"
[[test]]
name = "view_test"
path = "tests/view_test.rs"
[[test]]
name = "wal_path_test"
path = "tests/wal_path_test.rs"
[[test]]
name = "wal_visibility_test"
path = "tests/wal_visibility_test.rs"
[[test]]
name = "where_clause_test"
path = "tests/where_clause_test.rs"
[[test]]
name = "window_advanced_test"
path = "tests/window_advanced_test.rs"
[[test]]
name = "window_coverage_test"
path = "tests/window_coverage_test.rs"
[[test]]
name = "window_function_test"
path = "tests/window_function_test.rs"
[[test]]
name = "zonemap_test"
path = "tests/zonemap_test.rs"
[[bench]]
name = "delete_by_id"
path = "benches/delete_by_id.rs"
harness = false
[[bench]]
name = "delete_complex"
path = "benches/delete_complex.rs"
harness = false
[[bench]]
name = "select_by_id"
path = "benches/select_by_id.rs"
harness = false
[[bench]]
name = "select_complex"
path = "benches/select_complex.rs"
harness = false
[[bench]]
name = "update_by_id"
path = "benches/update_by_id.rs"
harness = false
[[bench]]
name = "update_complex"
path = "benches/update_complex.rs"
harness = false
[dependencies.ahash]
version = "0.8"
[dependencies.anyhow]
version = "1.0"
[dependencies.bytes]
version = "1.5"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4.4"
features = ["derive"]
optional = true
[dependencies.comfy-table]
version = "7.2"
optional = true
[dependencies.crc32fast]
version = "1.4"
[dependencies.crossbeam]
version = "0.8"
[dependencies.dashmap]
version = "6"
[dependencies.dirs]
version = "6.0"
optional = true
[dependencies.duckdb]
version = "1.4.3"
features = ["bundled"]
optional = true
[dependencies.hashbrown]
version = "0.16"
[dependencies.indexmap]
version = "2.1"
[dependencies.lru]
version = "0.16"
[dependencies.lz4_flex]
version = "0.12"
[dependencies.memchr]
version = "2.6"
[dependencies.mimalloc]
version = "0.1"
optional = true
default-features = false
[dependencies.ordered-float]
version = "5.1"
[dependencies.parking_lot]
version = "0.12"
[dependencies.radsort]
version = "0.1"
[dependencies.rand]
version = "0.9"
[dependencies.rayon]
version = "1.8"
optional = true
[dependencies.regex]
version = "1.10"
[dependencies.roaring]
version = "0.11"
[dependencies.rusqlite]
version = "0.32"
features = ["bundled"]
optional = true
[dependencies.rustc-hash]
version = "1.1"
[dependencies.rustyline]
version = "17.0"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.smallvec]
version = "1.11"
[dependencies.thiserror]
version = "2.0"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.dhat]
version = "0.3"
[dev-dependencies.proptest]
version = "1.4"
[dev-dependencies.tempfile]
version = "3.9"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_02]
version = "0.2"
features = ["js"]
package = "getrandom"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_03]
version = "0.3"
features = ["wasm_js"]
package = "getrandom"
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
"console",
"Performance",
"Window",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.web-time]
version = "1.1"
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61"
features = [
"Win32_Foundation",
"Win32_Storage_FileSystem",
"Win32_System_IO",
]
[profile.bench]
lto = true
codegen-units = 1
[profile.ci]
lto = "thin"
codegen-units = 16
debug = 0
inherits = "release"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
debug = 2
panic = "abort"