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] |
| 2 | name = "oxedyne_fe2o3_net" |
| 3 | version = "0.5.0" |
| 4 | authors = ["h00gs <hello@oxedyne.io>"] |
| 5 | edition = "2021" |
| 6 | license = "BSD-2-Clause/Apache-2.0" |
| 7 | description = "Hematite networking library." |
| 8 | repository = "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. |
| 18 | default = ["async", "ring"] |
| 19 | async = ["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. |
| 26 | ring = ["dep:ring"] |
| 27 | |
| 28 | [dependencies] |
| 29 | oxedyne_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. |
| 34 | oxedyne_fe2o3_crypto = { path = "../fe2o3_crypto", default-features = false, features = ["mode2"] } |
| 35 | oxedyne_fe2o3_data = { path = "../fe2o3_data" } |
| 36 | oxedyne_fe2o3_geom = { path = "../fe2o3_geom" } |
| 37 | oxedyne_fe2o3_jdat = { path = "../fe2o3_jdat" } |
| 38 | oxedyne_fe2o3_hash = { path = "../fe2o3_hash" } |
| 39 | oxedyne_fe2o3_iop_crypto = { path = "../fe2o3_iop_crypto" } |
| 40 | oxedyne_fe2o3_iop_db = { path = "../fe2o3_iop_db" } |
| 41 | oxedyne_fe2o3_iop_hash = { path = "../fe2o3_iop_hash" } |
| 42 | oxedyne_fe2o3_stds = { path = "../fe2o3_stds" } |
| 43 | oxedyne_fe2o3_syntax = { path = "../fe2o3_syntax" } |
| 44 | oxedyne_fe2o3_text = { path = "../fe2o3_text" } |
| 45 | |
| 46 | base64 = "0.13.0" |
| 47 | chrono = "0.4" |
| 48 | flate2 = "1.0" |
| 49 | rcgen = { version = "0.12.0", optional = true } |
| 50 | ring = { version = "0.17", optional = true } |
| 51 | secrecy = "0.8.0" |
| 52 | sha1 = "0.10.6" |
| 53 | strum = { version = "0.25", features = ["derive"] } |
| 54 | tokio = { 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. |
| 61 | tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12", "logging"], optional = true } |
| 62 | |
| 63 | [dev-dependencies] |
| 64 | oxedyne_fe2o3_data = { path = "../fe2o3_data" } |