Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
39 lines (37 loc) · 1.49 KB
/
Copy pathCargo.toml
File metadata and controls
39 lines (37 loc) · 1.49 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
# The workspace root. One core library, two boundary adapters, two test tools.
#
# crates/hashid the domain. No I/O, no unsafe, three dependencies.
# crates/hashid-ffi UniFFI adapter -> Kotlin, Swift, Python, Ruby, Java.
# crates/hashid-c hand-written C ABI adapter -> C, and everything
# that speaks C (JNA, ctypes, cgo, N-API, P/Invoke).
# crates/hashid-resolve fragment -> id, for a CLI. Depends on the core.
# crates/hashid-conformance emits and checks `spec/vectors.json`.
#
# The adapters depend on the core. Nothing depends on an adapter. That direction
# is enforced here, in the crate graph, rather than hoped for in review.
#
# `hashid` ships no store and no port trait: minting asks one question and takes
# a closure. There is nothing left for a test-double crate to double.
[workspace]
resolver = "2"
members = [
"crates/hashid",
"crates/hashid-ffi",
"crates/hashid-c",
"crates/hashid-resolve",
"crates/hashid-conformance",
]
[workspace.package]
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/igouss/hashid"
[workspace.dependencies]
hashid = { path = "crates/hashid", version = "0.1.0" }
hashid-resolve = { path = "crates/hashid-resolve", version = "0.1.0" }
chrono = { version = "0.4.43", default-features = false, features = ["std", "clock"] }
sha2 = "0.11.0"
thiserror = "2.0.18"
uniffi = "0.32"
serde = { version = "1", features = ["derive"] }
serde_json = "1"