[package]
edition = "2024"
rust-version = "1.89"
name = "filesnap"
version = "0.3.0"
build = false
exclude = ["tests/"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Git-free file snapshots and rewind: a content-addressed store that puts a directory back the way it was, without a repository and without touching the user's version control."
readme = "README.md"
keywords = [
"snapshot",
"rewind",
"undo",
"checkpoint",
"restore",
]
categories = [
"filesystem",
"development-tools",
]
license = "Apache-2.0"
repository = "https://github.com/extracurricular-ai/filesnap"
[features]
test-support = ["dep:tempfile"]
[lib]
name = "filesnap"
path = "src/lib.rs"
doctest = false
[[example]]
name = "scan_bench"
path = "examples/scan_bench.rs"
[dependencies.dunce]
version = "1.0.5"
[dependencies.gix]
version = "0.81.0"
features = [
"sha1",
"index",
]
default-features = false
[dependencies.ignore]
version = "0.4.23"
[dependencies.serde]
version = "1"
features = [
"rc",
"derive",
]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.tempfile]
version = "3.23.0"
optional = true
[dependencies.thiserror]
version = "2.0.17"
[dependencies.tracing]
version = "0.1.44"
[dev-dependencies.pretty_assertions]
version = "1.4.1"
[dev-dependencies.tempfile]
version = "3.23.0"
[lints.clippy]
await_holding_invalid_type = "deny"
await_holding_lock = "deny"
disallowed_methods = "deny"
expect_used = "deny"
identity_op = "deny"
manual_clamp = "deny"
manual_filter = "deny"
manual_find = "deny"
manual_flatten = "deny"
manual_map = "deny"
manual_memcpy = "deny"
manual_non_exhaustive = "deny"
manual_ok_or = "deny"
manual_range_contains = "deny"
manual_retain = "deny"
manual_strip = "deny"
manual_try_fold = "deny"
manual_unwrap_or = "deny"
needless_borrow = "deny"
needless_borrowed_reference = "deny"
needless_collect = "deny"
needless_late_init = "deny"
needless_option_as_deref = "deny"
needless_question_mark = "deny"
needless_update = "deny"
redundant_clone = "deny"
redundant_closure = "deny"
redundant_closure_for_method_calls = "deny"
redundant_static_lifetimes = "deny"
trivially_copy_pass_by_ref = "deny"
uninlined_format_args = "deny"
unnecessary_filter_map = "deny"
unnecessary_lazy_evaluations = "deny"
unnecessary_sort_by = "deny"
unnecessary_to_owned = "deny"
unwrap_used = "deny"
[lints.rust]