forked from cool-japan/oxicode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
93 lines (79 loc) · 2.71 KB
/
Copy pathCargo.toml
File metadata and controls
93 lines (79 loc) · 2.71 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
[workspace]
members = ["derive", "compatibility"]
resolver = "2"
[workspace.package]
version = "0.2.1"
authors = ["COOLJAPAN OU (Team Kitasan)"]
edition = "2021"
rust-version = "1.74.0"
repository = "https://github.com/cool-japan/oxicode"
license = "Apache-2.0"
description = "A modern binary serialization library - successor to bincode"
readme = "README.md"
[workspace.dependencies]
# Proc macro dependencies
syn = "2.0"
quote = "1.0"
proc-macro2 = "1.0"
# Core dependencies
serde = { version = "1.0", default-features = false }
crc32fast = { version = "1.5" }
# Dev dependencies
criterion = "0.8.2"
tempfile = "3.27"
serde_json = { version = "1.0", default-features = false }
proptest = "1.10"
[package]
name = "oxicode"
version.workspace = true
edition.workspace = true
authors.workspace = true
repository.workspace = true
license.workspace = true
description.workspace = true
readme.workspace = true
rust-version.workspace = true
keywords = ["binary", "encode", "serialize", "bincode", "serialization"]
categories = ["encoding", "network-programming"]
publish = true
[features]
default = ["std", "derive"]
std = ["alloc", "serde?/std"]
alloc = ["serde?/alloc"]
derive = ["oxicode_derive"]
serde = ["dep:serde", "alloc"] # Serde integration (optional)
simd = [] # SIMD-optimized array encoding (auto-detects CPU capabilities)
compression-lz4 = ["oxiarc-lz4"] # LZ4 compression (fast, pure Rust)
compression-zstd = ["oxiarc-zstd"] # Zstd compression (better ratio, pure Rust)
compression = ["compression-lz4"] # Default compression feature
async-tokio = ["tokio"] # Async streaming with tokio
checksum = ["dep:crc32fast"] # CRC32 integrity checking for encoded data
validation = [] # Enable validation trait implementations in tests
versioning = [] # Enable versioning API tests
[dependencies]
oxicode_derive = { path = "derive", version = "0.2.1", optional = true }
serde = { workspace = true, optional = true, features = ["alloc"] }
oxiarc-lz4 = { version = "0.2.4", optional = true }
oxiarc-zstd = { version = "0.2.4", optional = true }
tokio = { version = "1.50", features = ["io-util"], optional = true }
crc32fast = { workspace = true, optional = true }
[dev-dependencies]
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
tempfile = { workspace = true }
criterion = { workspace = true }
bincode = "2.0" # Never upgrade to 3.0
tokio = { version = "1.50", features = ["rt", "macros", "io-util", "fs", "time"] }
proptest = { workspace = true }
[[bench]]
name = "encoding_bench"
harness = false
[[bench]]
name = "decoding_bench"
harness = false
[[bench]]
name = "comparison_bench"
harness = false
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]