-
Notifications
You must be signed in to change notification settings - Fork 2
/
Cargo.toml
81 lines (75 loc) · 2.52 KB
/
Cargo.toml
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
[package]
name = "zerogc"
description = "Zero overhead tracing garbage collection for rust"
version.workspace = true
authors.workspace = true
repository.workspace = true
license.workspace = true
edition.workspace = true
readme = "README.md"
[dependencies]
scopeguard = "1.1"
inherent = "1"
# Manually included tracing support for third party libraries
# Providing support for these important libraries,
# gives zerogc batteries included support.
indexmap = { version = "1.6", optional = true }
parking_lot = { version = "0.11", optional = true }
arrayvec = { version = "0.7", optional = true }
anyhow = { version = "1", optional = true }
# Serde support (optional)
serde = { version = "1", optional = true, features = ["derive"] }
# Used for macros
zerogc-derive = { path = "libs/derive", version = "0.2.0-alpha.6" }
# Used for the "epsilon" no-op collector
bumpalo = { version = "3", optional = true }
# Used for our custom hashmap
ahash = { version = "0.7.0", default-features = false, optional = true }
[dependencies.hashbrown]
# Hashbrown is used for our custom hashmap implementation
# We also implement Trace regardless
version = "0.11"
optional = true
features = ["raw", "nightly"]
[dev-dependencies]
serde_json = "1"
# Used to test custom hash function
# support for IndexMap
fnv = "1"
[workspace]
resolver = "2"
members = ["libs/*"]
[workspace.package]
version = "0.2.0-alpha.7"
authors = ["Techcable <[email protected]>"]
repository = "https://github.com/DuckLogic/zerogc"
license = "MIT"
edition = "2018"
[features]
default = ["std", "epsilon", "epsilon-arena-alloc"]
# Depend on the standard library (optional)
#
# This implements tracing for most standard library types.
std = ["alloc"]
# Depend on `extern crate alloc` in addition to the Rust `core`
# This is implied by using the standard library (feature="std")
#
# This implements `Trace` for `Box` and collections like `Vec`
alloc = []
# Emulate the `core::alloc::Allocator` api
#
# NOTE: This doesn't *necessarily* require the 'alloc'
# feature (because the API itself is in 'core')
allocator-api = []
# Our custom hashmap implementation
hashmap-impl = ["allocator-api", "hashbrown", "ahash"]
# Support a 'GcError' type that implements 'std::error::Error'
# by wrapping a 'GcHandle'
errors = []
# Serde support
serde1 = ["serde", "zerogc-derive/__serde-internal", "arrayvec/serde", "indexmap/serde-1", "hashbrown/serde"]
# Support the "epsilon" no-op collector
epsilon = []
# Configure the "epsilon" collector use arena allocation
# (on by default)
epsilon-arena-alloc = ["epsilon", "bumpalo"]