sightingdb 0.5.2

A database designed for Sightings, a technique to count items
[package]
name = "sightingdb"
version = "0.5.2"
authors = ["Sebastien Tricaud <sebastien.tricaud@devo.com>"]
edition = "2024"
rust-version = "1.88"
license = "MIT"
description = "A database designed for Sightings, a technique to count items"
repository = "https://github.com/stricaud/sightingdb"
readme = "README.md"
keywords = ["sightings", "threat-intelligence", "indicators", "database"]
categories = ["database-implementations", "command-line-utilities"]
# Development-only: shipping it would push anyone running `cargo install` onto
# the stable channel rather than letting any 1.88+ toolchain build the crate.
# tests/ holds Python scripts that need a running server and the external
# client library, so they are no use inside the crate tarball — and their
# presence makes CI's cache step probe for Rust test directories that do not
# exist. docker/ is likewise a deployment concern, not part of the library.
exclude = [
    "rust-toolchain.toml",
    ".idea/*",
    ".github/*",
    "tests/*",
    "docker/*",
]

[[bin]]
name = "sightingdb"
path = "src/main.rs"

[dependencies]
actix-web = { version = "4.14", features = ["openssl"] }
anyhow = "1.0"
chrono = { version = "0.4.45", features = ["serde"] }
# Already in the tree via hickory-proto; used for base32 query decoding.
data-encoding = "2.11"
clap = { version = "4.6", features = ["derive"] }
dirs = "6.0"
# Wire-format only: we run our own socket loop and responder.
hickory-proto = { version = "0.26", default-features = false, features = ["std"] }
# Native Rust ZeroMQ: speaks ZMTP to libzmq publishers such as MISP without
# linking the C library, which keeps the release binaries self-contained.
zeromq = { version = "0.6", default-features = false, features = ["tcp-transport", "tokio-runtime"] }
log = "0.4"
log4rs = "1.4"
openssl = "0.10.81"
# Already in the tree via actix-router; used for STIX pattern literals.
regex = "1.13"
serde_json = "1.0"
# Already in the tree via actix-web. Chosen over xz for snapshots: measured on
# a 50 MB snapshot, zstd -9 compresses in 0.34s to 8.0x where xz -6 takes 15.6s
# for 12.1x, and decompresses 6x faster — which is the path a namespace being
# paged back in sits on.
zstd = "0.13"
toml = "1.1"
# Format-preserving TOML, so the management interface can rewrite a config
# without discarding its comments. This is what cargo uses on Cargo.toml.
toml_edit = "0.25"
serde = { version = "1.0", features = ["derive"] }
rand = "0.10"
sha2 = "0.11.0"

[features]
# Build OpenSSL from source and link it statically. Off by default because it
# costs several minutes; release binaries turn it on so they do not depend on
# whatever libssl happens to be installed on the target machine.
vendored-openssl = ["openssl/vendored"]

[dev-dependencies]
actix-rt = "2.11"

[profile.release]
lto = "thin"
codegen-units = 1