Ctrl K
ComunidadGuías…

Cargo.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[workspace]
members = [
    "graph",
    "fuzz",
    "runtime-fuzz-target", ]
# native-deps is its own workspace: graph/build.rs uses it as a build-dependency,
# so it must not inherit this workspace's RUSTFLAGS/target (e.g. an ASAN build).
exclude = ["native-deps"]

[package]
name = "falkordb-rs"
version = "99.99.99"
edition = "2024"
description = "Graph database"
license = "SSPL-1.0"
repository = "https://github.com/FalkorDB/FalkorDB"
readme = "README.md"
keywords = ["graph", "database"]
categories = ["database"]

[lib]
crate-type = ["cdylib", "rlib"]
name = "falkordb"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
thiserror = "2"
crossfire = "3.1.19"
graph = { path = "graph", version = "0.1.0" }
lazy_static = "1.5.0"
libc = "0.2"
parking_lot = { version = "0.13.0", features = ["arc_lock"] }
redis-module = { git = "https://github.com/AviAvni/redismodule-rs", branch = "fix/resp-string-bytes" }
# Pinned exactly, not caret-matched. Two engines have to serialize the same
# ids to the same bytes (#2698), and roaring's output is not stable across
# releases by contract: `optimize()` is path-dependent, and the container
# heuristics it uses are internal. A patch bump that changes a tie-break
# changes the wire, silently, on one side only. `predicted_matches_roaring`
# in `effects/v3/id_list.rs` is the canary; this pin is the seatbelt.
roaring = "=0.11.5"
rustc-hash = "2"
ryu = "1.0.23"
thin-vec = "0.2.18"
orx-tree = "2.2.0"

[build-dependencies]
redis-module-macros = { git = "https://github.com/AviAvni/redismodule-rs", branch = "fix/resp-string-bytes" }

[profile.dev]
opt-level = 2

[profile.release]
codegen-units = 1
lto = true
# debug = true
# strip = false

# Release performance (LTO on, so it mirrors the shipped build) plus full
# DWARF debuginfo so `perf --call-graph dwarf` can unwind + symbolize (incl.
# inlined frames) for flame graphs. Not stripped. Used by `bench profile`.
# `cargo bench` inherits release, whose `lto = true` cannot link the prebuilt
# GraphBLAS objects ("Can't find section __bitcode"). Thin LTO fails the same
# way, so benches build without it. They measure self-contained Rust — the
# codec and roaring — so what LTO would inline across the C boundary is not on
# the path being timed. Do not read these numbers as shipped-binary numbers.
[profile.bench]
inherits = "release"
lto = false
# Symbols only — no codegen change, so timings stay comparable — but samply can
# name the frames instead of reporting bare addresses.
debug = true
strip = false

[profile.profiling]
inherits = "release"
debug = true
strip = false

[features]
fuzz = []
# Pass-through for graph's native numeric index. Enables `index::falkordb` in the
# shipped `.so`; off by default. See graph/Cargo.toml for the full contract.
index-falkordb = ["graph/index-falkordb"]
# Drive GraphBLAS at GxB_JIT_ON (full JIT including compile-on-demand) so the
# JIT cache populates as we exercise the test suite. Consumed by graph's
# matrix.rs and forwarded by `native-deps prejit`; never enable in shipped builds —
# the runtime image has no compiler and no on-disk cache.
prejit_harvest = ["graph/prejit_harvest"]