-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCargo.toml
More file actions
127 lines (110 loc) · 3.64 KB
/
Copy pathCargo.toml
File metadata and controls
127 lines (110 loc) · 3.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
[workspace]
members = ["crates/core", "crates/encode", "crates/decode"]
exclude = ["fuzz", "bench", "jsr"]
[package]
name = "zrip"
version = "0.8.3"
edition = "2024"
rust-version = "1.89"
description = "Fast, memory-safe Rust implementation of Zstandard compression (levels -8..4)"
license = "MIT"
repository = "https://github.com/paddor/zrip"
categories = ["compression"]
keywords = ["zstd", "zstandard", "compression", "decompression"]
include = ["src/**/*", "README.md", "LICENSE", "CHANGELOG.md", "DESIGN.md", "SAFETY.md", "SECURITY.md", "!jsr/**"]
[features]
default = ["std", "frame", "ldm", "simd"]
std = ["alloc", "zrip-core/std", "zrip-encode/std", "zrip-decode/std"]
simd = ["zrip-decode/simd"]
alloc = ["zrip-core/alloc", "zrip-encode/alloc", "zrip-decode/alloc"]
frame = ["std", "zrip-encode/frame", "zrip-decode/frame"]
ldm = ["std", "zrip-encode/ldm"]
dict_builder = ["std", "zrip-core/dict_builder"]
nightly = ["zrip-core/nightly", "zrip-encode/nightly", "zrip-decode/nightly"]
paranoid = ["zrip-core/paranoid", "zrip-encode/paranoid", "zrip-decode/paranoid"]
[dependencies]
zrip-core = { version = "0.9.0", path = "crates/core", default-features = false }
zrip-encode = { version = "0.8.3", path = "crates/encode", default-features = false }
zrip-decode = { version = "0.8.3", path = "crates/decode", default-features = false }
[lints]
workspace = true
[dev-dependencies]
zstd = "0.13"
zstd-safe = "7"
proptest = "1"
libc = "0.2"
[[example]]
name = "quickstart"
required-features = ["std"]
[[example]]
name = "decode_compare"
required-features = ["std"]
[[example]]
name = "mem_profile"
required-features = ["std"]
[[example]]
name = "profile_decode"
required-features = ["std"]
[[example]]
name = "profile_decode_corpus"
required-features = ["std"]
[[example]]
name = "profile_encode"
required-features = ["std"]
[[example]]
name = "profile_czstd"
required-features = ["std"]
[[example]]
name = "profile_czstd_decode"
required-features = ["std"]
[[example]]
name = "profile_xray"
required-features = ["std"]
[workspace.lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)'] }
[workspace.lints.clippy]
pedantic = { level = "warn", priority = -1 }
# Casts are pervasive and intentional in a codec operating on fixed-width fields.
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_sign_loss = "allow"
cast_lossless = "allow"
cast_precision_loss = "allow"
# Raw pointer casts in unsafe primitives and SIMD intrinsics.
ptr_as_ptr = "allow"
ptr_cast_constness = "allow"
cast_ptr_alignment = "allow"
# Hot-path primitives need guaranteed inlining.
inline_always = "allow"
# Codec functions are inherently long.
too_many_lines = "allow"
# Internal crate: doc and must_use noise not worth it.
must_use_candidate = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
doc_markdown = "allow"
# Acceptable in codec code.
similar_names = "allow"
items_after_statements = "allow"
wildcard_imports = "allow"
# Bitwise bool is intentional for branchless hot paths.
needless_bitwise_bool = "allow"
# match on tuple with catch-all is clearer than if-let for FSE table dispatch.
single_match_else = "allow"
# manual_ilog2 suggestion changes behavior on zero.
manual_ilog2 = "allow"
bool_to_int_with_if = "allow"
if_not_else = "allow"
# Iterating with .iter() is explicit about intent.
explicit_iter_loop = "allow"
# let-else doesn't help when the else is a complex expression.
option_if_let_else = "allow"
match_same_arms = "allow"
redundant_closure_for_method_calls = "allow"
# u128 -> f64 is fine for display purposes.
enum_glob_use = "allow"
module_name_repetitions = "allow"
needless_pass_by_value = "allow"
[profile.release]
lto = "thin"
codegen-units = 1