[package]
edition = "2024"
rust-version = "1.95"
name = "mnem-core"
version = "0.1.0"
authors = ["mnem contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Content-addressed versioned substrate for AI agent memory - the core of mnem."
homepage = "https://github.com/Uranid/mnem"
documentation = "https://docs.rs/mnem-core"
readme = "README.md"
keywords = [
"knowledge-graph",
"content-addressed",
"versioning",
"cbor",
"ipld",
]
categories = [
"database",
"data-structures",
"encoding",
]
license = "Apache-2.0"
repository = "https://github.com/Uranid/mnem"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
blake3 = []
ci-slow = []
default = []
linearize = []
[lib]
name = "mnem_core"
path = "src/lib.rs"
[[example]]
name = "agent_memory_killer"
path = "examples/agent_memory_killer.rs"
[[example]]
name = "agent_retrieve_under_budget"
path = "examples/agent_retrieve_under_budget.rs"
[[example]]
name = "cas_and_linearize"
path = "examples/cas_and_linearize.rs"
[[example]]
name = "commit_and_op_log"
path = "examples/commit_and_op_log.rs"
[[example]]
name = "hash_round_trip"
path = "examples/hash_round_trip.rs"
[[example]]
name = "in_memory_store"
path = "examples/in_memory_store.rs"
[[example]]
name = "index_scaling_bench"
path = "examples/index_scaling_bench.rs"
[[example]]
name = "perf_commit_scaling"
path = "examples/perf_commit_scaling.rs"
[[example]]
name = "perf_layer_attribution"
path = "examples/perf_layer_attribution.rs"
[[example]]
name = "prolly_chunker"
path = "examples/prolly_chunker.rs"
[[example]]
name = "prolly_diff"
path = "examples/prolly_diff.rs"
[[example]]
name = "prolly_tree"
path = "examples/prolly_tree.rs"
[[example]]
name = "q0_put_trusted_ingest_bench"
path = "examples/q0_put_trusted_ingest_bench.rs"
[[example]]
name = "repo_init_commit"
path = "examples/repo_init_commit.rs"
[[example]]
name = "sign_and_verify"
path = "examples/sign_and_verify.rs"
[[example]]
name = "stable_ids"
path = "examples/stable_ids.rs"
[[test]]
name = "agent_flow"
path = "tests/agent_flow.rs"
[[test]]
name = "community_expander_additive"
path = "tests/community_expander_additive.rs"
[[test]]
name = "community_filter_zero_impact"
path = "tests/community_filter_zero_impact.rs"
[[test]]
name = "determinism_properties"
path = "tests/determinism_properties.rs"
[[test]]
name = "fuzz_parsers"
path = "tests/fuzz_parsers.rs"
[[test]]
name = "g16_thread_invariance"
path = "tests/g16_thread_invariance.rs"
[[test]]
name = "graph_expand_ppr_zero_impact"
path = "tests/graph_expand_ppr_zero_impact.rs"
[[test]]
name = "hybrid_adjacency_union"
path = "tests/hybrid_adjacency_union.rs"
[[test]]
name = "merge_fixtures"
path = "tests/merge_fixtures.rs"
[[test]]
name = "merge_properties"
path = "tests/merge_properties.rs"
[[test]]
name = "ppr_convergence"
path = "tests/ppr_convergence.rs"
[[test]]
name = "ppr_determinism"
path = "tests/ppr_determinism.rs"
[[test]]
name = "ppr_size_gate"
path = "tests/ppr_size_gate.rs"
[[test]]
name = "ppr_small"
path = "tests/ppr_small.rs"
[[test]]
name = "ppr_with_matrix"
path = "tests/ppr_with_matrix.rs"
[[test]]
name = "q0_put_trusted_safety_net"
path = "tests/q0_put_trusted_safety_net.rs"
[[test]]
name = "retrieve_quality"
path = "tests/retrieve_quality.rs"
[[bench]]
name = "commit"
path = "benches/commit.rs"
harness = false
[[bench]]
name = "dual_adjacency"
path = "benches/dual_adjacency.rs"
harness = false
[[bench]]
name = "graph_expand"
path = "benches/graph_expand.rs"
harness = false
[[bench]]
name = "retrieve"
path = "benches/retrieve.rs"
harness = false
[dependencies.blake3]
version = "1.8"
default-features = false
[dependencies.bytes]
version = "1.11"
features = ["serde"]
default-features = false
[dependencies.cid]
version = "0.11"
features = [
"alloc",
"serde",
]
default-features = false
[dependencies.ed25519-dalek]
version = "2.2"
features = [
"rand_core",
"zeroize",
]
default-features = false
[dependencies.ipld-core]
version = "0.4"
features = ["serde"]
default-features = false
[dependencies.multihash]
version = "0.19"
features = [
"alloc",
"serde",
]
default-features = false
[dependencies.multihash-codetable]
version = "0.2"
features = [
"sha2",
"blake3",
]
default-features = false
[dependencies.serde]
version = "1"
features = [
"derive",
"alloc",
]
default-features = false
[dependencies.serde_ipld_dagcbor]
version = "0.6"
features = ["std"]
default-features = false
[dependencies.serde_ipld_dagjson]
version = "0.2"
default-features = false
[dependencies.serde_json]
version = "1"
features = ["alloc"]
default-features = false
[dependencies.thiserror]
version = "2.0"
default-features = false
[dependencies.tracing]
version = "0.1"
features = [
"std",
"attributes",
]
default-features = false
[dependencies.uuid]
version = "1.23"
features = [
"v7",
"serde",
"std",
]
default-features = false
[dev-dependencies.bytes]
version = "1.11"
features = ["serde"]
default-features = false
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
default-features = false
[dev-dependencies.proptest]
version = "1.11"
[dev-dependencies.serde_json]
version = "1"
[lints.clippy]
assertions_on_constants = "allow"
assigning_clones = "allow"
bool_assert_comparison = "allow"
case_sensitive_file_extension_comparisons = "allow"
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
clone_on_copy = "allow"
cloned_ref_to_slice_refs = "allow"
collapsible_if = "allow"
copy_iterator = "allow"
default_trait_access = "allow"
doc_lazy_continuation = "allow"
doc_markdown = "allow"
doc_overindented_list_items = "allow"
elidable_lifetime_names = "allow"
explicit_into_iter_loop = "allow"
explicit_iter_loop = "allow"
field_reassign_with_default = "allow"
flat_map_option = "allow"
float_cmp = "allow"
fn_params_excessive_bools = "allow"
format_collect = "allow"
format_push_string = "allow"
ignored_unit_patterns = "allow"
implicit_clone = "allow"
inefficient_to_string = "allow"
items_after_statements = "allow"
items_after_test_module = "allow"
iter_on_single_items = "allow"
iter_without_into_iter = "allow"
large_enum_variant = "allow"
len_zero = "allow"
literal_string_with_formatting_args = "allow"
manual_assert = "allow"
manual_is_multiple_of = "allow"
manual_is_variant_and = "allow"
manual_let_else = "allow"
manual_range_contains = "allow"
manual_string_new = "allow"
map_flatten = "allow"
map_unwrap_or = "allow"
match_bool = "allow"
match_same_arms = "allow"
match_wildcard_for_single_variants = "allow"
misnamed_getters = "allow"
missing_const_for_fn = "allow"
missing_errors_doc = "allow"
missing_fields_in_debug = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
must_use_unit = "allow"
mut_mut = "allow"
needless_borrows_for_generic_args = "allow"
needless_collect = "allow"
needless_continue = "allow"
needless_for_each = "allow"
needless_pass_by_value = "allow"
needless_range_loop = "allow"
no_effect_underscore_binding = "allow"
option_if_let_else = "allow"
option_option = "allow"
or_fun_call = "allow"
ptr_arg = "allow"
range_plus_one = "allow"
redundant_clone = "allow"
redundant_else = "allow"
redundant_pub_crate = "allow"
ref_as_ptr = "allow"
ref_option = "allow"
result_large_err = "allow"
return_self_not_must_use = "allow"
significant_drop_tightening = "allow"
similar_names = "allow"
single_element_loop = "allow"
single_match_else = "allow"
struct_excessive_bools = "allow"
struct_field_names = "allow"
suboptimal_flops = "allow"
too_long_first_doc_paragraph = "allow"
too_many_lines = "allow"
trivially_copy_pass_by_ref = "allow"
tuple_array_conversions = "allow"
uninlined_format_args = "allow"
unnecessary_box_returns = "allow"
unnecessary_cast = "allow"
unnecessary_literal_bound = "allow"
unnecessary_map_or = "allow"
unnecessary_sort_by = "allow"
unnecessary_trailing_comma = "allow"
unnecessary_wraps = "allow"
unreadable_literal = "allow"
unused_peekable = "allow"
unused_self = "allow"
use_self = "allow"
used_underscore_binding = "allow"
wildcard_imports = "allow"
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "deny"
unknown_lints = "allow"
unreachable_pub = "warn"
unsafe_code = "forbid"
[lints.rust.rust_2018_idioms]
level = "warn"
priority = -1
[lints.rustdoc]
bare_urls = "allow"
broken_intra_doc_links = "allow"
doc_lazy_continuation = "allow"
invalid_html_tags = "allow"
private_intra_doc_links = "allow"