[package]
edition = "2024"
name = "fsqlite-core"
version = "0.3.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core engine: connection, prepare, schema, DDL/DML codegen"
readme = "README.md"
license-file = "LICENSE"
repository = "https://github.com/Dicklesworthstone/frankensqlite"
resolver = "2"
[features]
bench-internals = []
default = [
"native",
"linux-asupersync-uring",
]
diagnostic-pragmas = ["dep:serde_json"]
ext-fts5 = [
"dep:fsqlite-ext-fts5",
"fsqlite-func/ext-fts5",
]
ext-icu = [
"dep:fsqlite-ext-icu",
"fsqlite-func/ext-icu",
]
ext-json = [
"dep:fsqlite-ext-json",
"fsqlite-func/ext-json",
]
ext-misc = ["dep:fsqlite-ext-misc"]
ext-rtree = [
"dep:fsqlite-ext-rtree",
"fsqlite-func/ext-geopoly",
"fsqlite-func/ext-rtree",
]
extensions = [
"ext-json",
"ext-fts5",
"ext-icu",
"ext-misc",
"ext-rtree",
]
linux-asupersync-uring = [
"native",
"fsqlite-vfs/linux-asupersync-uring",
]
native = [
"fsqlite-types/native",
"fsqlite-vfs/native",
"fsqlite-pager/native",
"fsqlite-wal/native",
"fsqlite-mvcc/native",
"fsqlite-btree/native",
"fsqlite-planner/native",
"fsqlite-vdbe/native",
"diagnostic-pragmas",
"extensions",
]
wasm = [
"fsqlite-types/wasm",
"fsqlite-vfs/wasm",
"fsqlite-pager/wasm",
"fsqlite-wal/wasm",
"fsqlite-mvcc/wasm",
"fsqlite-btree/wasm",
"fsqlite-planner/wasm",
"fsqlite-vdbe/wasm",
"wasm-tracing-max-level-error",
]
wasm-tracing-max-level-error = ["tracing/release_max_level_error"]
wasm-tracing-max-level-warn = ["tracing/release_max_level_warn"]
[lib]
name = "fsqlite_core"
path = "src/lib.rs"
[[test]]
name = "agent_swarm_coordination_test_matrix_contract"
path = "tests/agent_swarm_coordination_test_matrix_contract.rs"
[[test]]
name = "agent_swarm_explain_concurrency_contract"
path = "tests/agent_swarm_explain_concurrency_contract.rs"
[[test]]
name = "agent_swarm_fallback_transparency_contract"
path = "tests/agent_swarm_fallback_transparency_contract.rs"
[[test]]
name = "agent_swarm_lease_contract"
path = "tests/agent_swarm_lease_contract.rs"
[[test]]
name = "agent_swarm_queue_claim_contract"
path = "tests/agent_swarm_queue_claim_contract.rs"
[[test]]
name = "agent_swarm_worker_range_contract"
path = "tests/agent_swarm_worker_range_contract.rs"
[[test]]
name = "b4_query_row_indexed_equality"
path = "tests/b4_query_row_indexed_equality.rs"
[[test]]
name = "batched_commit_scaling_repro"
path = "tests/batched_commit_scaling_repro.rs"
[[test]]
name = "bd_2lt76_1_bridge"
path = "tests/bd_2lt76_1_bridge.rs"
[[test]]
name = "beads_rebuild_fresh_lookup"
path = "tests/beads_rebuild_fresh_lookup.rs"
[[test]]
name = "boundary_duplication_census"
path = "tests/boundary_duplication_census.rs"
[[test]]
name = "cache_staleness_cross_txn_regression"
path = "tests/cache_staleness_cross_txn_regression.rs"
[[test]]
name = "codegen_gap_probe"
path = "tests/codegen_gap_probe.rs"
[[test]]
name = "conformance_oracle_alter_table"
path = "tests/conformance_oracle_alter_table.rs"
[[test]]
name = "conformance_oracle_ext"
path = "tests/conformance_oracle_ext.rs"
[[test]]
name = "conformance_oracle_json_paths"
path = "tests/conformance_oracle_json_paths.rs"
[[test]]
name = "conformance_oracle_minmax_rowid_seek"
path = "tests/conformance_oracle_minmax_rowid_seek.rs"
[[test]]
name = "conformance_oracle_s55"
path = "tests/conformance_oracle_s55.rs"
[[test]]
name = "conformance_oracle_s74b"
path = "tests/conformance_oracle_s74b.rs"
[[test]]
name = "conformance_oracle_s77"
path = "tests/conformance_oracle_s77.rs"
[[test]]
name = "conformance_oracle_s78"
path = "tests/conformance_oracle_s78.rs"
[[test]]
name = "conformance_oracle_s79"
path = "tests/conformance_oracle_s79.rs"
[[test]]
name = "conformance_oracle_s80"
path = "tests/conformance_oracle_s80.rs"
[[test]]
name = "conformance_oracle_s81"
path = "tests/conformance_oracle_s81.rs"
[[test]]
name = "conformance_oracle_s82"
path = "tests/conformance_oracle_s82.rs"
[[test]]
name = "conformance_oracle_s83"
path = "tests/conformance_oracle_s83.rs"
[[test]]
name = "conformance_oracle_type_affinity"
path = "tests/conformance_oracle_type_affinity.rs"
[[test]]
name = "core_sql_rusqlite_conformance"
path = "tests/core_sql_rusqlite_conformance.rs"
[[test]]
name = "differential_proptest"
path = "tests/differential_proptest.rs"
[[test]]
name = "divergence_hunt_probe"
path = "tests/divergence_hunt_probe.rs"
[[test]]
name = "fast_path_separation"
path = "tests/fast_path_separation.rs"
[[test]]
name = "fk_explicit_rowid_insert_scaling"
path = "tests/fk_explicit_rowid_insert_scaling.rs"
[[test]]
name = "fk_insert_conflict_oracle"
path = "tests/fk_insert_conflict_oracle.rs"
[[test]]
name = "fromless_where_subquery_params_contract"
path = "tests/fromless_where_subquery_params_contract.rs"
[[test]]
name = "in_exists_regression"
path = "tests/in_exists_regression.rs"
[[test]]
name = "insert_select_returning_conformance"
path = "tests/insert_select_returning_conformance.rs"
[[test]]
name = "issue_122_check_isnull_precedence"
path = "tests/issue_122_check_isnull_precedence.rs"
[[test]]
name = "planner_join_order_wire"
path = "tests/planner_join_order_wire.rs"
[[test]]
name = "planner_sqlite_stat1"
path = "tests/planner_sqlite_stat1.rs"
[[test]]
name = "prepared_hit_rate_proof"
path = "tests/prepared_hit_rate_proof.rs"
[[test]]
name = "prepared_pragma_dispatch"
path = "tests/prepared_pragma_dispatch.rs"
[[test]]
name = "recursive_cte_perf_repro"
path = "tests/recursive_cte_perf_repro.rs"
[[test]]
name = "scalar_result_diff_probe"
path = "tests/scalar_result_diff_probe.rs"
[[test]]
name = "self_connection_read_your_own_write"
path = "tests/self_connection_read_your_own_write.rs"
[[test]]
name = "self_connection_read_your_own_write_peer_races"
path = "tests/self_connection_read_your_own_write_peer_races.rs"
[[test]]
name = "sequential_autocommit_increment_probe"
path = "tests/sequential_autocommit_increment_probe.rs"
[[test]]
name = "ssi_e_process_gate"
path = "tests/ssi_e_process_gate.rs"
[[test]]
name = "ssi_e_process_wired"
path = "tests/ssi_e_process_wired.rs"
[[test]]
name = "statement_cache_invalidation"
path = "tests/statement_cache_invalidation.rs"
[[test]]
name = "strict_multi_process"
path = "tests/strict_multi_process.rs"
[[test]]
name = "track_w_gate"
path = "tests/track_w_gate.rs"
[[test]]
name = "union_view_root_page_collision"
path = "tests/union_view_root_page_collision.rs"
[[test]]
name = "update_multicolumn_set_conformance"
path = "tests/update_multicolumn_set_conformance.rs"
[[test]]
name = "v1_e2e_regression_tests"
path = "tests/v1_e2e_regression_tests.rs"
[[test]]
name = "v2_superinstruction_tests"
path = "tests/v2_superinstruction_tests.rs"
[[bench]]
name = "prepared_cache_hot_paths"
path = "benches/prepared_cache_hot_paths.rs"
harness = false
[[bench]]
name = "rowid_eq_aggregate_bench"
path = "benches/rowid_eq_aggregate_bench.rs"
harness = false
[[bench]]
name = "symbol_ops"
path = "benches/symbol_ops.rs"
harness = false
[dependencies.blake3]
version = "1.8"
[dependencies.foldhash]
version = "0.2.0"
[dependencies.fsqlite-ast]
version = "0.3.0"
[dependencies.fsqlite-btree]
version = "0.3.0"
default-features = false
[dependencies.fsqlite-error]
version = "0.3.0"
[dependencies.fsqlite-ext-fts5]
version = "0.3.0"
optional = true
[dependencies.fsqlite-ext-icu]
version = "0.3.0"
optional = true
[dependencies.fsqlite-ext-json]
version = "0.3.0"
optional = true
[dependencies.fsqlite-ext-misc]
version = "0.3.0"
optional = true
[dependencies.fsqlite-ext-rtree]
version = "0.3.0"
optional = true
[dependencies.fsqlite-func]
version = "0.3.0"
[dependencies.fsqlite-mvcc]
version = "0.3.0"
default-features = false
[dependencies.fsqlite-observability]
version = "0.3.0"
[dependencies.fsqlite-pager]
version = "0.3.0"
default-features = false
[dependencies.fsqlite-parser]
version = "0.3.0"
[dependencies.fsqlite-planner]
version = "0.3.0"
default-features = false
[dependencies.fsqlite-types]
version = "0.3.0"
default-features = false
[dependencies.fsqlite-vdbe]
version = "0.3.0"
default-features = false
[dependencies.fsqlite-vfs]
version = "0.3.0"
default-features = false
[dependencies.fsqlite-wal]
version = "0.3.0"
default-features = false
[dependencies.hashbrown]
version = "0.17"
features = ["serde"]
[dependencies.itoa]
version = "1.0"
[dependencies.lazy_static]
version = "1.5"
[dependencies.lru]
version = "0.18"
[dependencies.serde]
version = "1.0"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1.0"
features = ["preserve_order"]
optional = true
[dependencies.smallvec]
version = "1.15"
[dependencies.tracing]
version = "0.1"
[dependencies.xxhash-rust]
version = "0.8"
features = ["xxh3"]
[dev-dependencies.asupersync]
version = ">=0.4.3,<0.5"
features = ["test-internals"]
default-features = false
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.11"
[dev-dependencies.rusqlite]
version = "0.40.1"
features = [
"bundled",
"backup",
]
[dev-dependencies.serde_json]
version = "1.0"
features = ["preserve_order"]
[dev-dependencies.sha2]
version = "0.11"
[dev-dependencies.tempfile]
version = "3.27"
[dev-dependencies.tracing]
version = "0.1"
[dev-dependencies.tracing-subscriber]
version = "0.3.23"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.asupersync]
version = ">=0.4.3,<0.5"
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.asupersync]
version = ">=0.4.3,<0.5"
default-features = false
[lints.clippy.approx_constant]
level = "allow"
priority = 1
[lints.clippy.assertions_on_constants]
level = "allow"
priority = 1
[lints.clippy.bool_to_int_with_if]
level = "allow"
priority = 1
[lints.clippy.case_sensitive_file_extension_comparisons]
level = "allow"
priority = 1
[lints.clippy.cast_lossless]
level = "allow"
priority = 1
[lints.clippy.cast_possible_truncation]
level = "allow"
priority = 1
[lints.clippy.cast_possible_wrap]
level = "allow"
priority = 1
[lints.clippy.cast_precision_loss]
level = "allow"
priority = 1
[lints.clippy.cast_sign_loss]
level = "allow"
priority = 1
[lints.clippy.cloned_ref_to_slice_refs]
level = "allow"
priority = 1
[lints.clippy.collection_is_never_read]
level = "allow"
priority = 1
[lints.clippy.default_trait_access]
level = "allow"
priority = 1
[lints.clippy.doc_lazy_continuation]
level = "allow"
priority = 1
[lints.clippy.doc_markdown]
level = "allow"
priority = 1
[lints.clippy.expect_fun_call]
level = "allow"
priority = 1
[lints.clippy.explicit_iter_loop]
level = "allow"
priority = 1
[lints.clippy.float_cmp]
level = "allow"
priority = 1
[lints.clippy.format_collect]
level = "allow"
priority = 1
[lints.clippy.format_push_string]
level = "allow"
priority = 1
[lints.clippy.future_not_send]
level = "allow"
priority = 1
[lints.clippy.if_not_else]
level = "allow"
priority = 1
[lints.clippy.if_then_some_else_none]
level = "allow"
priority = 1
[lints.clippy.items_after_statements]
level = "allow"
priority = 1
[lints.clippy.large_futures]
level = "allow"
priority = 1
[lints.clippy.let_and_return]
level = "allow"
priority = 1
[lints.clippy.manual_assert]
level = "allow"
priority = 1
[lints.clippy.manual_checked_ops]
level = "allow"
priority = 1
[lints.clippy.manual_let_else]
level = "allow"
priority = 1
[lints.clippy.manual_range_contains]
level = "allow"
priority = 1
[lints.clippy.manual_string_new]
level = "allow"
priority = 1
[lints.clippy.many_single_char_names]
level = "allow"
priority = 1
[lints.clippy.map_unwrap_or]
level = "allow"
priority = 1
[lints.clippy.match_wildcard_for_single_variants]
level = "allow"
priority = 1
[lints.clippy.missing_const_for_fn]
level = "allow"
priority = 1
[lints.clippy.missing_errors_doc]
level = "allow"
priority = 1
[lints.clippy.missing_panics_doc]
level = "allow"
priority = 1
[lints.clippy.module_name_repetitions]
level = "allow"
priority = 1
[lints.clippy.must_use_candidate]
level = "allow"
priority = 1
[lints.clippy.needless_collect]
level = "allow"
priority = 1
[lints.clippy.needless_pass_by_value]
level = "allow"
priority = 1
[lints.clippy.no_effect_underscore_binding]
level = "allow"
priority = 1
[lints.clippy.nursery]
level = "deny"
priority = -1
[lints.clippy.option_if_let_else]
level = "allow"
priority = 1
[lints.clippy.pedantic]
level = "deny"
priority = -1
[lints.clippy.redundant_clone]
level = "allow"
priority = 1
[lints.clippy.redundant_closure_for_method_calls]
level = "allow"
priority = 1
[lints.clippy.return_self_not_must_use]
level = "allow"
priority = 1
[lints.clippy.semicolon_if_nothing_returned]
level = "allow"
priority = 1
[lints.clippy.significant_drop_tightening]
level = "allow"
priority = 1
[lints.clippy.similar_names]
level = "allow"
priority = 1
[lints.clippy.single_char_pattern]
level = "allow"
priority = 1
[lints.clippy.single_match]
level = "allow"
priority = 1
[lints.clippy.single_match_else]
level = "allow"
priority = 1
[lints.clippy.stable_sort_primitive]
level = "allow"
priority = 1
[lints.clippy.too_many_lines]
level = "allow"
priority = 1
[lints.clippy.uninlined_format_args]
level = "allow"
priority = 1
[lints.clippy.unnecessary_cast]
level = "allow"
priority = 1
[lints.clippy.unnecessary_literal_bound]
level = "allow"
priority = 1
[lints.clippy.unreadable_literal]
level = "allow"
priority = 1
[lints.clippy.used_underscore_binding]
level = "allow"
priority = 1
[lints.clippy.useless_format]
level = "allow"
priority = 1
[lints.clippy.useless_vec]
level = "allow"
priority = 1
[lints.clippy.wildcard_enum_match_arm]
level = "allow"
priority = 1
[lints.rust]
unsafe_code = "forbid"