Oregami
Repositories/oxedyne/fe2o3

oxedyne/fe2o3/fe2o3_net/Cargo.toml

3.1 KiB, 55 runs

created by r1870400018:535, which is this file's identity for as long as the history lasts, whatever it is later renamed to

download · who wrote it · its history

1[package]
2name = "oxedyne_fe2o3_net"
3version = "0.5.0"
4authors = ["h00gs <hello@oxedyne.io>"]
5edition = "2021"
6license = "BSD-2-Clause/Apache-2.0"
7description = "Hematite networking library."
8repository = "https://github.com/oxedyne-io/fe2o3"
9
10[features]
11# The async/TLS half of the crate: the tokio-driven HTTP/WebSocket/SMTP/IMAP
12# servers and clients, the ACME and TLS machinery, and everything that links
13# tokio, tokio-rustls or rcgen. On by default, so every existing caller is
14# unchanged. A caller that only needs the tokio-free surface -- the std-only
15# `http::local` server, the address and media types, the presentation shapes --
16# turns it off with `default-features = false` and links none of that. TLS and
17# ACME rest on `ring`, so this takes it too.
18default = ["async", "ring"]
19async = ["ring", "dep:tokio", "dep:tokio-rustls", "dep:rcgen"]
20
21# The modules that rest on `ring`, a library of C and assembly: ACME and JOSE,
22# DKIM, the ECDSA and HMAC verifiers and WebAuthn. On by default. With
23# `default-features = false` the crate carries none of it and compiles to
24# wasm32-unknown-unknown, which is how a browser client reaches
25# `presentation::shape` and builds the bytes a verifier here rebuilds.
26ring = ["dep:ring"]
27
28[dependencies]
29oxedyne_fe2o3_core = { path = "../fe2o3_core" }
30# Only `mode2` is asked for: `presentation` needs Ed25519 and `linkring`, and
31# nothing here uses the C post-quantum code of crypto's default `pq`. That keeps
32# `pq` out of a wasm32 build only. Natively, `fe2o3_iop_db` takes crypto with its
33# defaults, so a native build of this crate still builds the C code.
34oxedyne_fe2o3_crypto = { path = "../fe2o3_crypto", default-features = false, features = ["mode2"] }
35oxedyne_fe2o3_data = { path = "../fe2o3_data" }
36oxedyne_fe2o3_geom = { path = "../fe2o3_geom" }
37oxedyne_fe2o3_jdat = { path = "../fe2o3_jdat" }
38oxedyne_fe2o3_hash = { path = "../fe2o3_hash" }
39oxedyne_fe2o3_iop_crypto = { path = "../fe2o3_iop_crypto" }
40oxedyne_fe2o3_iop_db = { path = "../fe2o3_iop_db" }
41oxedyne_fe2o3_iop_hash = { path = "../fe2o3_iop_hash" }
42oxedyne_fe2o3_stds = { path = "../fe2o3_stds" }
43oxedyne_fe2o3_syntax = { path = "../fe2o3_syntax" }
44oxedyne_fe2o3_text = { path = "../fe2o3_text" }
45
46base64 = "0.13.0"
47chrono = "0.4"
48flate2 = "1.0"
49rcgen = { version = "0.12.0", optional = true }
50ring = { version = "0.17", optional = true }
51secrecy = "0.8.0"
52sha1 = "0.10.6"
53strum = { version = "0.25", features = ["derive"] }
54tokio = { version = "1.35", features = ["full"], optional = true }
55# Rustls on `ring`, which this crate already carries, rather than on its default
56# `aws-lc-rs`. Taking the default meant every caller linked a second cryptography
57# library in C -- including callers that serve plain HTTP and use none of it --
58# and cross-compiling it for Windows builds its POSIX threading backend for a
59# target with no pthreads, so the link then needs the posix mingw and
60# `-lwinpthread`. `fe2o3_steel` already pins rustls this way.
61tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12", "logging"], optional = true }
62
63[dev-dependencies]
64oxedyne_fe2o3_data = { path = "../fe2o3_data" }