talon-core 0.4.2

Core retrieval engine for Talon: hybrid search (BM25 + semantic + reranker), indexing, and graph-aware ranking over markdown corpora.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.95"
name = "talon-core"
version = "0.4.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core retrieval engine for Talon: hybrid search (BM25 + semantic + reranker), indexing, and graph-aware ranking over markdown corpora."
homepage = "https://github.com/seanmozeik/talon"
readme = "README.md"
keywords = [
    "search",
    "retrieval",
    "embeddings",
    "bm25",
    "obsidian",
]
categories = [
    "text-processing",
    "database-implementations",
]
license = "MIT"
repository = "https://github.com/seanmozeik/talon"

[lib]
name = "talon_core"
path = "src/lib.rs"

[[test]]
name = "eval_suite"
path = "tests/eval_suite.rs"

[[test]]
name = "fixture_vault"
path = "tests/fixture_vault.rs"

[[test]]
name = "ranking_regression"
path = "tests/ranking_regression.rs"

[[test]]
name = "search_integration"
path = "tests/search_integration.rs"

[[test]]
name = "sync_embed"
path = "tests/sync_embed.rs"

[[bench]]
name = "bm25_with_filter"
path = "benches/bm25_with_filter.rs"
harness = false

[dependencies.fs-err]
version = "3.3.0"

[dependencies.globset]
version = "0.4.18"

[dependencies.indexmap]
version = "2.13.0"
features = ["serde"]

[dependencies.keyring-core]
version = "1.0.0"

[dependencies.lru]
version = "0.18.0"

[dependencies.regex]
version = "1.12.3"

[dependencies.reqwest]
version = "0.13.2"
features = [
    "json",
    "blocking",
    "rustls",
]
default-features = false

[dependencies.rusqlite]
version = "0.32.1"
features = [
    "bundled",
    "load_extension",
]

[dependencies.rustix]
version = "1.1.4"
features = ["process"]

[dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dependencies.serde_json]
version = "1.0.145"

[dependencies.serde_yaml_ng]
version = "0.10.0"

[dependencies.sha2]
version = "0.10.9"

[dependencies.sqlite-vec]
version = "0.1.9"

[dependencies.text-splitter]
version = "0.30.1"
features = ["markdown"]

[dependencies.thiserror]
version = "2.0.17"

[dependencies.time]
version = "0.3.44"
features = [
    "formatting",
    "parsing",
    "macros",
    "serde",
]

[dependencies.tokenx-rs]
version = "0.1.0"

[dependencies.tracing]
version = "0.1.41"

[dependencies.unicode-normalization]
version = "0.1.25"

[dependencies.walkdir]
version = "2.5.0"

[dependencies.windows-sys]
version = "0.61.2"
features = [
    "Win32_Foundation",
    "Win32_System_Threading",
]

[dependencies.xxhash-rust]
version = "0.8.15"
features = ["xxh3"]

[dependencies.yake-rust]
version = "1.0.3"

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
default-features = false

[dev-dependencies.tokio]
version = "1.48.0"
features = [
    "macros",
    "rt-multi-thread",
    "signal",
    "sync",
    "time",
]

[dev-dependencies.wiremock]
version = "0.6.5"

[target.'cfg(target_os = "linux")'.dependencies.linux-keyutils-keyring-store]
version = "1.0.0"

[target.'cfg(target_os = "macos")'.dependencies.security-framework]
version = "3.7.0"

[target.'cfg(target_os = "windows")'.dependencies.windows-native-keyring-store]
version = "1.0.0"

[lints.clippy]
dbg_macro = "deny"
expect_used = "warn"
print_stdout = "warn"
todo = "warn"
unwrap_used = "deny"

[lints.clippy.all]
level = "warn"
priority = -1

[lints.clippy.complexity]
level = "warn"
priority = -1

[lints.clippy.correctness]
level = "deny"
priority = -1

[lints.clippy.nursery]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.clippy.perf]
level = "warn"
priority = -1

[lints.clippy.style]
level = "warn"
priority = -1

[lints.clippy.suspicious]
level = "deny"
priority = -1

[lints.rust]
missing_debug_implementations = "warn"
unsafe_code = "deny"
unused_must_use = "deny"

[lints.rustdoc]
broken_intra_doc_links = "deny"
private_intra_doc_links = "warn"