Merge branch 'main' of gitlab.com:veilid/veilid

This commit is contained in:
John Smith 2023-09-16 19:58:12 -04:00
commit 30547903b0
30 changed files with 507 additions and 241 deletions

View File

@ -1,5 +1,5 @@
[bumpversion] [bumpversion]
current_version = 0.2.1 current_version = 0.2.2
[bumpversion:file:veilid-server/Cargo.toml] [bumpversion:file:veilid-server/Cargo.toml]
search = name = "veilid-server" search = name = "veilid-server"

1
.capnp_version Normal file
View File

@ -0,0 +1 @@
1.0.1

View File

@ -1,8 +1,4 @@
.vscode .vscode
.git .git
external/keyring-manager/android_test/.gradle
external/keyring-manager/android_test/app/build
external/keyring-manager/android_test/build
external/keyring-manager/android_test/local.properties
target target
veilid-core/pkg veilid-core/pkg

1
.protoc_version Normal file
View File

@ -0,0 +1 @@
24.3

View File

@ -1,3 +1,15 @@
**Changed in Veilid 0.2.2**
- Capnproto 1.0.1 + Protobuf 24.3
- DHT set/get correctness fixes
- Connection table fixes
- Node resolution fixes
- More debugging commands (appmessage, appcall, resolve, better nodeinfo, etc)
- Reverse connect for WASM nodes
- Better Typescript types for WASM
- Various script and environment cleanups
- Earthly build for aarch64 RPM
- Much improved and faster public address detection
**Changes in Veilid 0.2.1** **Changes in Veilid 0.2.1**
- Crates are separated and publishable - Crates are separated and publishable
- First publication of veilid-core with docs to crates.io and docs.rs - First publication of veilid-core with docs to crates.io and docs.rs

283
Cargo.lock generated
View File

@ -73,9 +73,9 @@ dependencies = [
[[package]] [[package]]
name = "allo-isolate" name = "allo-isolate"
version = "0.1.18" version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71441b1911974f09ca413fc93fb2e3bfc60f4a284fdc7fd51e5a81b6afc61727" checksum = "c258c1a017ecaccfb34c8fa46ecbb2f5402584e31082c12b5caf0be82ac5ac44"
dependencies = [ dependencies = [
"atomic", "atomic",
] ]
@ -172,9 +172,9 @@ dependencies = [
[[package]] [[package]]
name = "anstyle" name = "anstyle"
version = "1.0.2" version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
[[package]] [[package]]
name = "anstyle-parse" name = "anstyle-parse"
@ -231,9 +231,9 @@ dependencies = [
[[package]] [[package]]
name = "argon2" name = "argon2"
version = "0.5.1" version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2e554a8638bdc1e4eae9984845306cc95f8a9208ba8d49c3859fd958b46774d" checksum = "17ba4cac0a46bc1d2912652a751c47f2a9f3a7fe89bcae2275d418f5270402f9"
dependencies = [ dependencies = [
"base64ct", "base64ct",
"blake2", "blake2",
@ -430,7 +430,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -461,7 +461,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -570,7 +570,7 @@ dependencies = [
"async-trait", "async-trait",
"axum-core", "axum-core",
"bitflags 1.3.2", "bitflags 1.3.2",
"bytes 1.4.0", "bytes 1.5.0",
"futures-util", "futures-util",
"http", "http",
"http-body", "http-body",
@ -596,7 +596,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bytes 1.4.0", "bytes 1.5.0",
"futures-util", "futures-util",
"http", "http",
"http-body", "http-body",
@ -635,9 +635,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]] [[package]]
name = "base64" name = "base64"
version = "0.21.3" version = "0.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
[[package]] [[package]]
name = "base64ct" name = "base64ct"
@ -683,7 +683,7 @@ dependencies = [
"quote", "quote",
"regex", "regex",
"rustc-hash", "rustc-hash",
"shlex 1.1.0", "shlex 1.2.0",
"which", "which",
] ]
@ -730,7 +730,7 @@ checksum = "e0b121a9fe0df916e362fb3271088d071159cdf11db0e4182d02152850756eff"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -799,15 +799,15 @@ dependencies = [
[[package]] [[package]]
name = "bumpalo" name = "bumpalo"
version = "3.13.0" version = "3.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
[[package]] [[package]]
name = "bytemuck" name = "bytemuck"
version = "1.13.1" version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
[[package]] [[package]]
name = "byteorder" name = "byteorder"
@ -823,21 +823,24 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
[[package]] [[package]]
name = "bytes" name = "bytes"
version = "1.4.0" version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
[[package]] [[package]]
name = "capnp" name = "capnp"
version = "0.17.2" version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95e65021d89250bbfe7c2791789ced2c4bdc21b0e8bb59c64f3fd6145a5fd678" checksum = "9eddbd729bd9742aa22d29e871a42ffea7f216a4ddbfdaf09ea88150ef2e7f76"
dependencies = [
"embedded-io",
]
[[package]] [[package]]
name = "capnpc" name = "capnpc"
version = "0.17.2" version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbbc3763fb3e6635188e9cc51ee11a26f8777c553ca377430818dbebaaf6042b" checksum = "5067f3c8ee94d993d03150153e9a57a6ff330127b1c1ad76475051e1cef79c2d"
dependencies = [ dependencies = [
"capnp", "capnp",
] ]
@ -913,15 +916,14 @@ dependencies = [
[[package]] [[package]]
name = "chrono" name = "chrono"
version = "0.4.28" version = "0.4.31"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95ed24df0632f708f5f6d8082675bef2596f7084dee3dd55f632290bf35bfe0f" checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
dependencies = [ dependencies = [
"android-tzdata", "android-tzdata",
"iana-time-zone", "iana-time-zone",
"js-sys", "js-sys",
"num-traits", "num-traits",
"time 0.1.45",
"wasm-bindgen", "wasm-bindgen",
"windows-targets 0.48.5", "windows-targets 0.48.5",
] ]
@ -974,9 +976,9 @@ dependencies = [
[[package]] [[package]]
name = "clap" name = "clap"
version = "4.4.2" version = "4.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a13b88d2c62ff462f88e4a121f17a82c1af05693a2f192b5c38d14de73c19f6" checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6"
dependencies = [ dependencies = [
"clap_builder", "clap_builder",
"clap_derive", "clap_derive",
@ -1004,7 +1006,7 @@ dependencies = [
"heck", "heck",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -1064,7 +1066,7 @@ version = "4.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
dependencies = [ dependencies = [
"bytes 1.4.0", "bytes 1.5.0",
"memchr", "memchr",
] ]
@ -1317,7 +1319,7 @@ dependencies = [
"flexi_logger", "flexi_logger",
"lazy_static", "lazy_static",
"log", "log",
"time 0.3.28", "time",
"unicode-width", "unicode-width",
] ]
@ -1362,9 +1364,9 @@ dependencies = [
"owning_ref", "owning_ref",
"serde_json", "serde_json",
"serde_yaml", "serde_yaml",
"time 0.3.28", "time",
"tokio", "tokio",
"toml 0.7.6", "toml 0.7.8",
"unicode-segmentation", "unicode-segmentation",
"unicode-width", "unicode-width",
"xi-unicode", "xi-unicode",
@ -1381,9 +1383,9 @@ dependencies = [
[[package]] [[package]]
name = "curve25519-dalek" name = "curve25519-dalek"
version = "4.0.0" version = "4.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" checksum = "622178105f911d937a42cdb140730ba4a3ed2becd8ae6ce39c7d28b5d75d4588"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"cpufeatures", "cpufeatures",
@ -1404,7 +1406,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -1460,7 +1462,7 @@ dependencies = [
"ident_case", "ident_case",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -1482,7 +1484,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
dependencies = [ dependencies = [
"darling_core 0.20.3", "darling_core 0.20.3",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -1635,6 +1637,12 @@ version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
[[package]]
name = "embedded-io"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "658bbadc628dc286b9ae02f0cb0f5411c056eb7487b72f0083203f115de94060"
[[package]] [[package]]
name = "enum-as-inner" name = "enum-as-inner"
version = "0.5.1" version = "0.5.1"
@ -1649,22 +1657,22 @@ dependencies = [
[[package]] [[package]]
name = "enum-map" name = "enum-map"
version = "2.6.1" version = "2.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9705d8de4776df900a4a0b2384f8b0ab42f775e93b083b42f8ce71bdc32a47e3" checksum = "c188012f8542dee7b3996e44dd89461d64aa471b0a7c71a1ae2f595d259e96e5"
dependencies = [ dependencies = [
"enum-map-derive", "enum-map-derive",
] ]
[[package]] [[package]]
name = "enum-map-derive" name = "enum-map-derive"
version = "0.13.0" version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccb14d927583dd5c2eac0f2cf264fc4762aefe1ae14c47a8a20fc1939d3a5fc0" checksum = "04d0b288e3bb1d861c4403c1774a6f7a798781dfc519b3647df2a3dd4ae95f25"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -1707,7 +1715,7 @@ dependencies = [
"darling 0.20.3", "darling 0.20.3",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -1834,9 +1842,9 @@ dependencies = [
[[package]] [[package]]
name = "fiat-crypto" name = "fiat-crypto"
version = "0.1.20" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d"
[[package]] [[package]]
name = "fixedbitset" name = "fixedbitset"
@ -1869,7 +1877,7 @@ dependencies = [
"regex", "regex",
"rustversion", "rustversion",
"thiserror", "thiserror",
"time 0.3.28", "time",
] ]
[[package]] [[package]]
@ -1926,7 +1934,7 @@ version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47"
dependencies = [ dependencies = [
"rustix 0.38.11", "rustix 0.38.13",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -2001,7 +2009,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -2198,7 +2206,7 @@ version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
dependencies = [ dependencies = [
"bytes 1.4.0", "bytes 1.5.0",
"fnv", "fnv",
"futures-core", "futures-core",
"futures-sink", "futures-sink",
@ -2326,6 +2334,15 @@ dependencies = [
"digest 0.9.0", "digest 0.9.0",
] ]
[[package]]
name = "home"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
dependencies = [
"windows-sys 0.48.0",
]
[[package]] [[package]]
name = "hostname" name = "hostname"
version = "0.3.1" version = "0.3.1"
@ -2343,7 +2360,7 @@ version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
dependencies = [ dependencies = [
"bytes 1.4.0", "bytes 1.5.0",
"fnv", "fnv",
"itoa", "itoa",
] ]
@ -2354,7 +2371,7 @@ version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
dependencies = [ dependencies = [
"bytes 1.4.0", "bytes 1.5.0",
"http", "http",
"pin-project-lite", "pin-project-lite",
] ]
@ -2383,7 +2400,7 @@ version = "0.14.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
dependencies = [ dependencies = [
"bytes 1.4.0", "bytes 1.5.0",
"futures-channel", "futures-channel",
"futures-core", "futures-core",
"futures-util", "futures-util",
@ -2564,7 +2581,7 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
dependencies = [ dependencies = [
"socket2 0.5.3", "socket2 0.5.4",
"widestring", "widestring",
"windows-sys 0.48.0", "windows-sys 0.48.0",
"winreg", "winreg",
@ -2745,9 +2762,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.147" version = "0.2.148"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
[[package]] [[package]]
name = "libloading" name = "libloading"
@ -2796,9 +2813,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
[[package]] [[package]]
name = "linux-raw-sys" name = "linux-raw-sys"
version = "0.4.5" version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
[[package]] [[package]]
name = "lock_api" name = "lock_api"
@ -3070,7 +3087,7 @@ version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "842c6770fc4bb33dd902f41829c61ef872b8e38de1405aa0b938b27b8fba12c3" checksum = "842c6770fc4bb33dd902f41829c61ef872b8e38de1405aa0b938b27b8fba12c3"
dependencies = [ dependencies = [
"bytes 1.4.0", "bytes 1.5.0",
"futures", "futures",
"log", "log",
"netlink-packet-core", "netlink-packet-core",
@ -3086,7 +3103,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
dependencies = [ dependencies = [
"async-io", "async-io",
"bytes 1.4.0", "bytes 1.5.0",
"futures", "futures",
"libc", "libc",
"log", "log",
@ -3633,7 +3650,7 @@ dependencies = [
"pest_meta", "pest_meta",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -3704,7 +3721,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -3818,9 +3835,9 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.66" version = "1.0.67"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
@ -3831,7 +3848,7 @@ version = "0.11.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
dependencies = [ dependencies = [
"bytes 1.4.0", "bytes 1.5.0",
"prost-derive", "prost-derive",
] ]
@ -3841,7 +3858,7 @@ version = "0.11.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270"
dependencies = [ dependencies = [
"bytes 1.4.0", "bytes 1.5.0",
"heck", "heck",
"itertools", "itertools",
"lazy_static", "lazy_static",
@ -4190,14 +4207,14 @@ dependencies = [
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "0.38.11" version = "0.38.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453" checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
dependencies = [ dependencies = [
"bitflags 2.4.0", "bitflags 2.4.0",
"errno", "errno",
"libc", "libc",
"linux-raw-sys 0.4.5", "linux-raw-sys 0.4.7",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -4219,7 +4236,7 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
dependencies = [ dependencies = [
"base64 0.21.3", "base64 0.21.4",
] ]
[[package]] [[package]]
@ -4400,7 +4417,7 @@ checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -4422,14 +4439,14 @@ checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.105" version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
dependencies = [ dependencies = [
"itoa", "itoa",
"ryu", "ryu",
@ -4444,7 +4461,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -4516,7 +4533,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -4590,9 +4607,9 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
[[package]] [[package]]
name = "shlex" name = "shlex"
version = "1.1.0" version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
[[package]] [[package]]
name = "signal-hook" name = "signal-hook"
@ -4659,7 +4676,7 @@ checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369"
dependencies = [ dependencies = [
"log", "log",
"termcolor", "termcolor",
"time 0.3.28", "time",
] ]
[[package]] [[package]]
@ -4699,9 +4716,9 @@ dependencies = [
[[package]] [[package]]
name = "socket2" name = "socket2"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.48.0", "windows-sys 0.48.0",
@ -4793,9 +4810,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.31" version = "2.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398" checksum = "91e02e55d62894af2a08aca894c6577281f76769ba47c94d5756bec8ac6e7373"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -4831,7 +4848,7 @@ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"fastrand 2.0.0", "fastrand 2.0.0",
"redox_syscall 0.3.5", "redox_syscall 0.3.5",
"rustix 0.38.11", "rustix 0.38.13",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -4880,7 +4897,7 @@ checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -4904,17 +4921,6 @@ dependencies = [
"weezl", "weezl",
] ]
[[package]]
name = "time"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
dependencies = [
"libc",
"wasi 0.10.0+wasi-snapshot-preview1",
"winapi",
]
[[package]] [[package]]
name = "time" name = "time"
version = "0.3.28" version = "0.3.28"
@ -4967,14 +4973,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"bytes 1.4.0", "bytes 1.5.0",
"libc", "libc",
"mio", "mio",
"num_cpus", "num_cpus",
"parking_lot 0.12.1", "parking_lot 0.12.1",
"pin-project-lite", "pin-project-lite",
"signal-hook-registry", "signal-hook-registry",
"socket2 0.5.3", "socket2 0.5.4",
"tokio-macros", "tokio-macros",
"tracing", "tracing",
"windows-sys 0.48.0", "windows-sys 0.48.0",
@ -4998,7 +5004,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -5018,7 +5024,7 @@ version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
dependencies = [ dependencies = [
"bytes 1.4.0", "bytes 1.5.0",
"futures-core", "futures-core",
"futures-io", "futures-io",
"futures-sink", "futures-sink",
@ -5038,9 +5044,9 @@ dependencies = [
[[package]] [[package]]
name = "toml" name = "toml"
version = "0.7.6" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
dependencies = [ dependencies = [
"serde", "serde",
"serde_spanned", "serde_spanned",
@ -5059,9 +5065,9 @@ dependencies = [
[[package]] [[package]]
name = "toml_edit" name = "toml_edit"
version = "0.19.14" version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [ dependencies = [
"indexmap 2.0.0", "indexmap 2.0.0",
"serde", "serde",
@ -5080,7 +5086,7 @@ dependencies = [
"async-trait", "async-trait",
"axum", "axum",
"base64 0.13.1", "base64 0.13.1",
"bytes 1.4.0", "bytes 1.5.0",
"futures-core", "futures-core",
"futures-util", "futures-util",
"h2", "h2",
@ -5110,8 +5116,8 @@ checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"axum", "axum",
"base64 0.21.3", "base64 0.21.4",
"bytes 1.4.0", "bytes 1.5.0",
"futures-core", "futures-core",
"futures-util", "futures-util",
"h2", "h2",
@ -5195,7 +5201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e" checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e"
dependencies = [ dependencies = [
"crossbeam-channel", "crossbeam-channel",
"time 0.3.28", "time",
"tracing-subscriber", "tracing-subscriber",
] ]
@ -5207,7 +5213,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -5405,7 +5411,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"serde_derive_internals 0.28.0", "serde_derive_internals 0.28.0",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]
@ -5434,7 +5440,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649" checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649"
dependencies = [ dependencies = [
"byteorder", "byteorder",
"bytes 1.4.0", "bytes 1.5.0",
"data-encoding", "data-encoding",
"http", "http",
"httparse", "httparse",
@ -5448,9 +5454,9 @@ dependencies = [
[[package]] [[package]]
name = "typenum" name = "typenum"
version = "1.16.0" version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
[[package]] [[package]]
name = "ucd-trie" name = "ucd-trie"
@ -5466,9 +5472,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.11" version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]] [[package]]
name = "unicode-normalization" name = "unicode-normalization"
@ -5574,13 +5580,13 @@ checksum = "a9ee584edf237fac328b891dd06c21e7914a1db3762907edc366a13803451fe3"
[[package]] [[package]]
name = "veilid-cli" name = "veilid-cli"
version = "0.2.1" version = "0.2.2"
dependencies = [ dependencies = [
"arboard", "arboard",
"async-std", "async-std",
"async-tungstenite 0.8.0", "async-tungstenite 0.8.0",
"cfg-if 1.0.0", "cfg-if 1.0.0",
"clap 4.4.2", "clap 4.4.3",
"config", "config",
"crossbeam-channel", "crossbeam-channel",
"cursive", "cursive",
@ -5610,7 +5616,7 @@ dependencies = [
[[package]] [[package]]
name = "veilid-core" name = "veilid-core"
version = "0.2.1" version = "0.2.2"
dependencies = [ dependencies = [
"argon2", "argon2",
"async-io", "async-io",
@ -5680,7 +5686,7 @@ dependencies = [
"serial_test 2.0.0", "serial_test 2.0.0",
"shell-words", "shell-words",
"simplelog", "simplelog",
"socket2 0.5.3", "socket2 0.5.4",
"static_assertions", "static_assertions",
"stop-token", "stop-token",
"thiserror", "thiserror",
@ -5716,7 +5722,7 @@ dependencies = [
[[package]] [[package]]
name = "veilid-flutter" name = "veilid-flutter"
version = "0.2.1" version = "0.2.2"
dependencies = [ dependencies = [
"allo-isolate", "allo-isolate",
"async-std", "async-std",
@ -5768,14 +5774,14 @@ dependencies = [
[[package]] [[package]]
name = "veilid-server" name = "veilid-server"
version = "0.2.1" version = "0.2.2"
dependencies = [ dependencies = [
"ansi_term", "ansi_term",
"async-std", "async-std",
"async-tungstenite 0.23.0", "async-tungstenite 0.23.0",
"backtrace", "backtrace",
"cfg-if 1.0.0", "cfg-if 1.0.0",
"clap 4.4.2", "clap 4.4.3",
"color-eyre", "color-eyre",
"config", "config",
"console-subscriber", "console-subscriber",
@ -5818,7 +5824,7 @@ dependencies = [
[[package]] [[package]]
name = "veilid-tools" name = "veilid-tools"
version = "0.2.1" version = "0.2.2"
dependencies = [ dependencies = [
"android_logger 0.13.3", "android_logger 0.13.3",
"async-lock", "async-lock",
@ -5870,7 +5876,7 @@ dependencies = [
[[package]] [[package]]
name = "veilid-wasm" name = "veilid-wasm"
version = "0.2.1" version = "0.2.2"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"console_error_panic_hook", "console_error_panic_hook",
@ -5915,9 +5921,9 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
[[package]] [[package]]
name = "walkdir" name = "walkdir"
version = "2.3.3" version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
dependencies = [ dependencies = [
"same-file", "same-file",
"winapi-util", "winapi-util",
@ -5938,12 +5944,6 @@ version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]]
name = "wasi"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]] [[package]]
name = "wasi" name = "wasi"
version = "0.11.0+wasi-snapshot-preview1" version = "0.11.0+wasi-snapshot-preview1"
@ -5973,7 +5973,7 @@ dependencies = [
"once_cell", "once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -6007,7 +6007,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -6125,13 +6125,14 @@ dependencies = [
[[package]] [[package]]
name = "which" name = "which"
version = "4.4.0" version = "4.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
dependencies = [ dependencies = [
"either", "either",
"libc", "home",
"once_cell", "once_cell",
"rustix 0.38.13",
] ]
[[package]] [[package]]
@ -6447,9 +6448,9 @@ checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
[[package]] [[package]]
name = "xml-rs" name = "xml-rs"
version = "0.8.16" version = "0.8.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1" checksum = "bab77e97b50aee93da431f2cee7cd0f43b4d1da3c408042f2d7d164187774f0a"
[[package]] [[package]]
name = "xmltree" name = "xmltree"
@ -6521,7 +6522,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.36",
] ]
[[package]] [[package]]

View File

@ -148,11 +148,11 @@ For a simple installation allowing Rust development, follow these steps:
Install Git from <https://git-scm.com/download/win> Install Git from <https://git-scm.com/download/win>
Install Rust from <https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe> Install Rust from <https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe> (this may prompt you to run the Visual Studio Installer, and reboot, before proceeding).
Ensure that protoc.exe is in a directory in your path. For example, it can be obtained from <https://github.com/protocolbuffers/protobuf/releases/download/v24.2/protoc-24.2-win64.zip> Ensure that protoc.exe is in a directory in your path. For example, it can be obtained from <https://github.com/protocolbuffers/protobuf/releases/download/v24.3/protoc-24.3-win64.zip>
Ensure that capnp.exe is in a directory in your path. For example, it can be obtained from <https://capnproto.org/capnproto-c++-win32-0.10.4.zip> Ensure that capnp.exe (for Capn Proto 1.0.1) is in a directory in your path. For example, it can be obtained from the <https://capnproto.org/capnproto-c++-win32-1.0.1.zip> distribution. Please note that the Windows Package Manager Community Repository (i.e., winget) as of 2023-09-15 has version 0.10.4, which is not sufficient.
Start a Command Prompt window. Start a Command Prompt window.

View File

@ -2,7 +2,7 @@ VERSION 0.6
# Start with older Ubuntu to ensure GLIBC symbol versioning support for older linux # Start with older Ubuntu to ensure GLIBC symbol versioning support for older linux
# Ensure we are using an amd64 platform because some of these targets use cross-platform tooling # Ensure we are using an amd64 platform because some of these targets use cross-platform tooling
FROM ubuntu:16.04 FROM ubuntu:18.04
# Install build prerequisites # Install build prerequisites
deps-base: deps-base:
@ -12,14 +12,16 @@ deps-base:
# Install Cap'n Proto # Install Cap'n Proto
deps-capnp: deps-capnp:
FROM +deps-base FROM +deps-base
COPY .capnp_version /
COPY scripts/earthly/install_capnproto.sh / COPY scripts/earthly/install_capnproto.sh /
RUN /bin/bash /install_capnproto.sh 1; rm /install_capnproto.sh RUN /bin/bash /install_capnproto.sh 1; rm /install_capnproto.sh .capnp_version
# Install protoc # Install protoc
deps-protoc: deps-protoc:
FROM +deps-capnp FROM +deps-capnp
COPY .protoc_version /
COPY scripts/earthly/install_protoc.sh / COPY scripts/earthly/install_protoc.sh /
RUN /bin/bash /install_protoc.sh; rm /install_protoc.sh RUN /bin/bash /install_protoc.sh; rm /install_protoc.sh .protoc_version
# Install Rust # Install Rust
deps-rust: deps-rust:
@ -45,9 +47,6 @@ deps-rust:
# Install Linux cross-platform tooling # Install Linux cross-platform tooling
deps-cross: deps-cross:
FROM +deps-rust FROM +deps-rust
# TODO: gcc-aarch64-linux-gnu is not in the packages for ubuntu 16.04
# RUN apt-get install -y gcc-aarch64-linux-gnu curl unzip
# RUN apt-get install -y gcc-4.8-arm64-cross
RUN curl https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.3978+711b4e93e.tar.xz | tar -C /usr/local -xJf - RUN curl https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.3978+711b4e93e.tar.xz | tar -C /usr/local -xJf -
RUN mv /usr/local/zig-linux-x86_64-0.11.0-dev.3978+711b4e93e /usr/local/zig RUN mv /usr/local/zig-linux-x86_64-0.11.0-dev.3978+711b4e93e /usr/local/zig
ENV PATH=$PATH:/usr/local/zig ENV PATH=$PATH:/usr/local/zig
@ -74,14 +73,14 @@ deps-linux:
# Code + Linux deps # Code + Linux deps
code-linux: code-linux:
FROM +deps-linux FROM +deps-linux
COPY --dir .cargo files scripts veilid-cli veilid-core veilid-server veilid-tools veilid-flutter veilid-wasm Cargo.lock Cargo.toml /veilid COPY --dir .cargo .capnp_version .protoc_version files scripts veilid-cli veilid-core veilid-server veilid-tools veilid-flutter veilid-wasm Cargo.lock Cargo.toml /veilid
RUN cat /veilid/scripts/earthly/cargo-linux/config.toml >> /veilid/.cargo/config.toml RUN cat /veilid/scripts/earthly/cargo-linux/config.toml >> /veilid/.cargo/config.toml
WORKDIR /veilid WORKDIR /veilid
# Code + Linux + Android deps # Code + Linux + Android deps
code-android: code-android:
FROM +deps-android FROM +deps-android
COPY --dir .cargo files scripts veilid-cli veilid-core veilid-server veilid-tools veilid-flutter veilid-wasm Cargo.lock Cargo.toml /veilid COPY --dir .cargo .capnp_version .protoc_version files scripts veilid-cli veilid-core veilid-server veilid-tools veilid-flutter veilid-wasm Cargo.lock Cargo.toml /veilid
RUN cat /veilid/scripts/earthly/cargo-linux/config.toml >> /veilid/.cargo/config.toml RUN cat /veilid/scripts/earthly/cargo-linux/config.toml >> /veilid/.cargo/config.toml
RUN cat /veilid/scripts/earthly/cargo-android/config.toml >> /veilid/.cargo/config.toml RUN cat /veilid/scripts/earthly/cargo-android/config.toml >> /veilid/.cargo/config.toml
WORKDIR /veilid WORKDIR /veilid
@ -216,6 +215,27 @@ package-linux-arm64-deb:
# save artifacts # save artifacts
SAVE ARTIFACT --keep-ts /dpkg/out/*.deb AS LOCAL ./target/packages/ SAVE ARTIFACT --keep-ts /dpkg/out/*.deb AS LOCAL ./target/packages/
package-linux-arm64-rpm:
FROM --platform arm64 rockylinux:8
RUN yum install -y createrepo rpm-build rpm-sign yum-utils rpmdevtools
RUN rpmdev-setuptree
#################################
### RPMBUILD .RPM FILES
#################################
RUN mkdir -p /veilid/target
COPY --dir .cargo files scripts veilid-cli veilid-core veilid-server veilid-tools veilid-flutter veilid-wasm Cargo.lock Cargo.toml package /veilid
COPY +build-linux-arm64/aarch64-unknown-linux-gnu /veilid/target/aarch64-unknown-linux-gnu
RUN mkdir -p /rpm-work-dir/veilid-server
# veilid-server
RUN veilid/package/rpm/veilid-server/earthly_make_veilid_server_rpm.sh aarch64 aarch64-unknown-linux-gnu
#SAVE ARTIFACT --keep-ts /root/rpmbuild/RPMS/aarch64/*.rpm AS LOCAL ./target/packages/
# veilid-cli
RUN veilid/package/rpm/veilid-cli/earthly_make_veilid_cli_rpm.sh aarch64 aarch64-unknown-linux-gnu
# save artifacts
SAVE ARTIFACT --keep-ts /root/rpmbuild/RPMS/aarch64/*.rpm AS LOCAL ./target/packages/
package-linux-amd64: package-linux-amd64:
BUILD +package-linux-amd64-deb BUILD +package-linux-amd64-deb
BUILD +package-linux-amd64-rpm BUILD +package-linux-amd64-rpm

View File

@ -1,71 +1,99 @@
# Install a Veilid Node # Install and run a Veilid Node
## Server Grade Headless Nodes ## Server Grade Headless Nodes
These network support nodes are heavier than the node a user would establish on their phone in the form of a chat or social media application. A cloud based virtual private server (VPS), such as Digital Ocean Droplets or AWS EC2, with high bandwidth, processing resources, and uptime availability is crucial for building the fast, secure, and private routing that Veilid is built to provide. These network support nodes are heavier than the node a user would establish on their phone in the form of a chat or social media application. A cloud based virtual private server (VPS), such as Digital Ocean Droplets or AWS EC2, with high bandwidth, processing resources, and uptime availability is crucial for building the fast, secure, and private routing that Veilid is built to provide.
### Add the repo to a Debian based system and install a Veilid node ## Install
This is a multi-step process. ### Debian
**Step 1**: Add the GPG keys to your operating systems keyring. Follow the steps here to add the repo to a Debian based system and install Veilid.
**Step 1**: Add the GPG keys to your operating systems keyring.<br />
*Explanation*: The `wget` command downloads the public key, and the `sudo gpg` command adds the public key to the keyring. *Explanation*: The `wget` command downloads the public key, and the `sudo gpg` command adds the public key to the keyring.
```shell ```shell
wget -O- https://packages.veilid.net/gpg/veilid-packages-key.public | sudo gpg --dearmor -o /usr/share/keyrings/veilid-packages-keyring.gpg wget -O- https://packages.veilid.net/gpg/veilid-packages-key.public | sudo gpg --dearmor -o /usr/share/keyrings/veilid-packages-keyring.gpg
``` ```
**Step 2**: Identify your architecture **Step 2**: Identify your architecture<br />
*Explanation*: The following command will tell you what type of CPU your system is running *Explanation*: The following command will tell you what type of CPU your system is running
```shell ```shell
dpkg --print-architecture dpkg --print-architecture
``` ```
**Step 3**: Add Veilid to your list of available software. **Step 3**: Add Veilid to your list of available software.<br />
*Explanation*: Using the command in **Step 2** you will need to run **one** of the following: *Explanation*: Use the result of your command in **Step 2** and run **one** of the following:
- For **AMD64** based systems run this command: - For **AMD64** based systems run this command:
```shell ```shell
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/veilid-packages-keyring.gpg] https://packages.veilid.net/apt stable main" | sudo tee /etc/apt/sources.list.d/veilid.list 1>/dev/null echo "deb [arch=amd64 signed-by=/usr/share/keyrings/veilid-packages-keyring.gpg] https://packages.veilid.net/apt stable main" | sudo tee /etc/apt/sources.list.d/veilid.list 1>/dev/null
``` ```
- For **ARM64** based systems run this command: - For **ARM64** based systems run this command:
```shell ```shell
echo "deb [arch=arm64 signed-by=/usr/share/keyrings/veilid-packages-keyring.gpg] https://packages.veilid.net/apt stable main" | sudo tee /etc/apt/sources.list.d/veilid.list 1>/dev/null echo "deb [arch=arm64 signed-by=/usr/share/keyrings/veilid-packages-keyring.gpg] https://packages.veilid.net/apt stable main" | sudo tee /etc/apt/sources.list.d/veilid.list 1>/dev/null
``` ```
*Explanation*: *Explanation*:
Each of the above commands will create a new file called `veilid.list` in the `/etc/apt/sources.list.d/`. This file contains instructions that tell the operating system where to download Veilid. Each of the above commands will create a new file called `veilid.list` in the `/etc/apt/sources.list.d/`. This file contains instructions that tell the operating system where to download Veilid.
**Step 4**: Refresh the package manager. **Step 4**: Refresh the package manager.<br />
*Explanation*: This tells the `apt` package manager to rebuild the list of available software using the files in `/etc/apt/sources.list.d/` directory. This is invoked with "sudo" to grant superuser permission to make the changes. *Explanation*: This tells the `apt` package manager to rebuild the list of available software using the files in `/etc/apt/sources.list.d/` directory.
```shell ```shell
sudo apt update sudo apt update
``` ```
**Step 5**: Install Veilid. **Step 5**: Install Veilid.
*Explanation*: With the package manager updated, it is now possible to install Veilid! This is invoked with "sudo" to grant superuser permission to make the changes.
```shell ```shell
sudo apt install veilid-server veilid-cli sudo apt install veilid-server veilid-cli
``` ```
### Add the repo to a Fedora based system and install a Veilid node ### RPM-based
Follow the steps here to add the repo to
RPM-based systems (CentOS, Rocky Linux, AlmaLinux, Fedora, etc.)
and install Veilid.
**Step 1**: Add Veilid to your list of available software. **Step 1**: Add Veilid to your list of available software.
*Explanation*: With the package manager updated, it is now possible to install Veilid!
```shell ```shell
yum-config-manager --add-repo https://packages.veilid.net/rpm/veilid-rpm-repo.repo sudo yum-config-manager --add-repo https://packages.veilid.net/rpm/veilid-rpm-repo.repo
``` ```
**Step 2**: Install Veilid. **Step 2**: Install Veilid.
*Explanation*: With the package manager updated, it is now possible to install Veilid!
```shell ```shell
dnf install veilid-server veilid-cli sudo dnf install veilid-server veilid-cli
```
## Start headless node
### With systemd
To start a headless Veilid node, run:
```shell
sudo systemctl start veilid-server.service
```
To have your headless Veilid node start at boot:
```shell
sudo systemctl enable --now veilid-server.service
```
### Without systemd
`veilid-server` must be run as the `veilid` user.
To start your headless Veilid node without systemd, run:
```shell
sudo -u veilid veilid-server
``` ```

View File

@ -114,7 +114,7 @@ fi
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android wasm32-unknown-unknown rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android wasm32-unknown-unknown
# install cargo packages # install cargo packages
cargo install wasm-bindgen-cli wasm-pack cargo install wasm-bindgen-cli wasm-pack cargo-edit
# install pip packages # install pip packages
pip3 install --upgrade bumpversion pip3 install --upgrade bumpversion

View File

@ -139,7 +139,7 @@ esac
rustup target add aarch64-apple-darwin aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-darwin x86_64-apple-ios wasm32-unknown-unknown aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android rustup target add aarch64-apple-darwin aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-darwin x86_64-apple-ios wasm32-unknown-unknown aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
# install cargo packages # install cargo packages
cargo install wasm-bindgen-cli wasm-pack cargo install wasm-bindgen-cli wasm-pack cargo-edit
# install pip packages # install pip packages
pip3 install --upgrade bumpversion pip3 install --upgrade bumpversion

View File

@ -21,8 +21,8 @@ IF NOT DEFINED PROTOC_FOUND (
FOR %%X IN (capnp.exe) DO (SET CAPNP_FOUND=%%~$PATH:X) FOR %%X IN (capnp.exe) DO (SET CAPNP_FOUND=%%~$PATH:X)
IF NOT DEFINED CAPNP_FOUND ( IF NOT DEFINED CAPNP_FOUND (
echo capnproto compiler ^(capnp^) is required but it's not installed. Install capnp 0.10.4 or higher. Ensure it is in your path. Aborting. echo capnproto compiler ^(capnp^) is required but it's not installed. Install capnp 1.0.1 or higher. Ensure it is in your path. Aborting.
echo capnp is available here: https://capnproto.org/capnproto-c++-win32-0.10.4.zip echo capnp is available here: https://capnproto.org/capnproto-c++-win32-1.0.1.zip
goto end goto end
) )

View File

@ -10,4 +10,4 @@ cp -rf /veilid/package/rpm/veilid-server/veilid-server.spec /root/rpmbuild/SPECS
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-server.spec CARGO_ARCH $CARGO_ARCH /veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-server.spec CARGO_ARCH $CARGO_ARCH
# build the rpm # build the rpm
rpmbuild --target "x86_64" -bb /root/rpmbuild/SPECS/veilid-server.spec rpmbuild --target "$ARCH" -bb /root/rpmbuild/SPECS/veilid-server.spec

View File

@ -1,9 +1,16 @@
#!/bin/bash #!/bin/bash
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
if [ -f ".capnp_version" ]; then
CAPNPROTO_VERSION=$(cat ".capnp_version")
else
CAPNPROTO_VERSION=$(cat "$SCRIPTDIR/../../.capnp_version")
fi
mkdir /tmp/capnproto-install mkdir /tmp/capnproto-install
pushd /tmp/capnproto-install pushd /tmp/capnproto-install
curl -O https://capnproto.org/capnproto-c++-0.10.4.tar.gz curl -O https://capnproto.org/capnproto-c++-${CAPNPROTO_VERSION}.tar.gz
tar zxf capnproto-c++-0.10.4.tar.gz tar zxf capnproto-c++-${CAPNPROTO_VERSION}.tar.gz
cd capnproto-c++-0.10.4 cd capnproto-c++-${CAPNPROTO_VERSION}
./configure --without-openssl ./configure --without-openssl
make -j$1 check make -j$1 check
if [ "$EUID" -ne 0 ]; then if [ "$EUID" -ne 0 ]; then

View File

@ -1,13 +1,28 @@
#!/bin/bash #!/bin/bash
VERSION=23.3 SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
if [ -f ".protoc_version" ]; then
PROTOC_VERSION=$(cat ".protoc_version")
else
PROTOC_VERSION=$(cat "$SCRIPTDIR/../../.protoc_version")
fi
UNAME_M=$(uname -m)
if [[ "$UNAME_M" == "x86_64" ]]; then
PROTOC_ARCH=x86_64
elif [[ "$UNAME_M" == "aarch64" ]]; then
PROTOC_ARCH=aarch_64
else
echo Unsupported build architecture
exit 1
fi
mkdir /tmp/protoc-install mkdir /tmp/protoc-install
pushd /tmp/protoc-install pushd /tmp/protoc-install
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v$VERSION/protoc-$VERSION-linux-x86_64.zip curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-$PROTOC_ARCH.zip
unzip protoc-$VERSION-linux-x86_64.zip unzip protoc-$PROTOC_VERSION-linux-$PROTOC_ARCH.zip
if [ "$EUID" -ne 0 ]; then if [ "$EUID" -ne 0 ]; then
if command -v checkinstall &> /dev/null; then if command -v checkinstall &> /dev/null; then
sudo checkinstall --pkgversion=$VERSION -y cp -r bin include /usr/local/ sudo checkinstall --pkgversion=$PROTOC_VERSION -y cp -r bin include /usr/local/
cp *.deb ~ cp *.deb ~
else else
sudo cp -r bin include /usr/local/ sudo cp -r bin include /usr/local/
@ -16,7 +31,7 @@ if [ "$EUID" -ne 0 ]; then
sudo rm -rf /tmp/protoc-install sudo rm -rf /tmp/protoc-install
else else
if command -v checkinstall &> /dev/null; then if command -v checkinstall &> /dev/null; then
checkinstall --pkgversion=$VERSION -y cp -r bin include /usr/local/ checkinstall --pkgversion=$PROTOC_VERSION -y cp -r bin include /usr/local/
cp *.deb ~ cp *.deb ~
else else
cp -r bin include /usr/local/ cp -r bin include /usr/local/

View File

@ -1,7 +1,7 @@
[package] [package]
# --- Bumpversion match - do not reorder # --- Bumpversion match - do not reorder
name = "veilid-cli" name = "veilid-cli"
version = "0.2.1" version = "0.2.2"
# --- # ---
authors = ["Veilid Team <contact@veilid.com>"] authors = ["Veilid Team <contact@veilid.com>"]
edition = "2021" edition = "2021"
@ -54,7 +54,7 @@ flexi_logger = { version = "^0", features = ["use_chrono_for_offset"] }
thiserror = "^1" thiserror = "^1"
crossbeam-channel = "^0" crossbeam-channel = "^0"
hex = "^0" hex = "^0"
veilid-tools = { version = "0.2.0", path = "../veilid-tools" } veilid-tools = { version = "0.2.2", path = "../veilid-tools" }
json = "^0" json = "^0"
stop-token = { version = "^0", default-features = false } stop-token = { version = "^0", default-features = false }

View File

@ -1,7 +1,7 @@
[package] [package]
# --- Bumpversion match - do not reorder # --- Bumpversion match - do not reorder
name = "veilid-core" name = "veilid-core"
version = "0.2.1" version = "0.2.2"
# --- # ---
description = "Core library used to create a Veilid node and operate it as part of an application" description = "Core library used to create a Veilid node and operate it as part of an application"
authors = ["Veilid Team <contact@veilid.com>"] authors = ["Veilid Team <contact@veilid.com>"]
@ -59,7 +59,7 @@ network-result-extra = ["veilid-tools/network-result-extra"]
[dependencies] [dependencies]
# Tools # Tools
veilid-tools = { version = "0.2.0", path = "../veilid-tools", features = [ veilid-tools = { version = "0.2.2", path = "../veilid-tools", features = [
"tracing", "tracing",
], default-features = false } ], default-features = false }
paste = "1.0.14" paste = "1.0.14"
@ -92,7 +92,7 @@ hashlink = { package = "veilid-hashlink", version = "0.1.0", features = [
] } ] }
# System # System
futures-util = { version = "0.3.28", default_features = false, features = [ futures-util = { version = "0.3.28", default-features = false, features = [
"alloc", "alloc",
] } ] }
flume = { version = "0.11.0", features = ["async"] } flume = { version = "0.11.0", features = ["async"] }
@ -101,19 +101,19 @@ lock_api = "0.4.10"
stop-token = { version = "0.7.0", default-features = false } stop-token = { version = "0.7.0", default-features = false }
# Crypto # Crypto
ed25519-dalek = { version = "2.0.0", default_features = false, features = [ ed25519-dalek = { version = "2.0.0", default-features = false, features = [
"alloc", "alloc",
"rand_core", "rand_core",
"digest", "digest",
"zeroize", "zeroize",
] } ] }
x25519-dalek = { version = "2.0.0", default_features = false, features = [ x25519-dalek = { version = "2.0.0", default-features = false, features = [
"alloc", "alloc",
"static_secrets", "static_secrets",
"zeroize", "zeroize",
"precomputed-tables", "precomputed-tables",
] } ] }
curve25519-dalek = { version = "4.0.0", default_features = false, features = [ curve25519-dalek = { version = "4.0.0", default-features = false, features = [
"alloc", "alloc",
"zeroize", "zeroize",
"precomputed-tables", "precomputed-tables",
@ -129,7 +129,7 @@ trust-dns-resolver = { version = "0.22.0", optional = true }
enum-as-inner = "=0.5.1" # temporary fix for trust-dns-resolver v0.22.0 enum-as-inner = "=0.5.1" # temporary fix for trust-dns-resolver v0.22.0
# Serialization # Serialization
capnp = { version = "0.17.2", default_features = false } capnp = { version = "0.18.1", default-features = false }
serde = { version = "1.0.183", features = ["derive"] } serde = { version = "1.0.183", features = ["derive"] }
serde_json = { version = "1.0.105" } serde_json = { version = "1.0.105" }
serde-big-array = "0.5.1" serde-big-array = "0.5.1"
@ -182,7 +182,7 @@ socket2 = { version = "0.5.3", features = ["all"] }
# Dependencies for WASM builds only # Dependencies for WASM builds only
[target.'cfg(target_arch = "wasm32")'.dependencies] [target.'cfg(target_arch = "wasm32")'.dependencies]
veilid-tools = { version = "0.2.0", path = "../veilid-tools", default-features = false, features = [ veilid-tools = { version = "0.2.2", path = "../veilid-tools", default-features = false, features = [
"rt-wasm-bindgen", "rt-wasm-bindgen",
] } ] }
@ -282,7 +282,7 @@ wasm-logger = "0.2.0"
### BUILD OPTIONS ### BUILD OPTIONS
[build-dependencies] [build-dependencies]
capnpc = "0.17.2" capnpc = "0.18.0"
[package.metadata.wasm-pack.profile.release] [package.metadata.wasm-pack.profile.release]
wasm-opt = ["-O", "--enable-mutable-globals"] wasm-opt = ["-O", "--enable-mutable-globals"]

View File

@ -1,4 +1,119 @@
use std::path::PathBuf;
use std::process::{Command, Stdio};
fn search_file<T: AsRef<str>, P: AsRef<str>>(start: T, name: P) -> Option<PathBuf> {
let start_path = PathBuf::from(start.as_ref()).canonicalize().ok();
let mut path = start_path.as_ref().map(|x| x.as_path());
while let Some(some_path) = path {
let file_path = some_path.join(name.as_ref());
if file_path.exists() {
return Some(file_path.to_owned());
}
path = some_path.parent();
}
None
}
fn get_desired_capnp_version_string() -> String {
let capnp_path = search_file(env!("CARGO_MANIFEST_DIR"), ".capnp_version")
.expect("should find .capnp_version file");
std::fs::read_to_string(&capnp_path)
.expect(&format!(
"can't read .capnp_version file here: {:?}",
capnp_path
))
.trim()
.to_owned()
}
fn get_capnp_version_string() -> String {
let output = Command::new("capnp")
.arg("--version")
.stdout(Stdio::piped())
.output()
.expect("capnp was not in the PATH");
let s = String::from_utf8(output.stdout)
.expect("'capnp --version' output was not a valid string")
.trim()
.to_owned();
if !s.starts_with("Cap'n Proto version ") {
panic!("invalid capnp version string: {}", s);
}
s[20..].to_owned()
}
fn get_desired_protoc_version_string() -> String {
let protoc_path = search_file(env!("CARGO_MANIFEST_DIR"), ".protoc_version")
.expect("should find .protoc_version file");
std::fs::read_to_string(&protoc_path)
.expect(&format!(
"can't read .protoc_version file here: {:?}",
protoc_path
))
.trim()
.to_owned()
}
fn get_protoc_version_string() -> String {
let output = Command::new("protoc")
.arg("--version")
.stdout(Stdio::piped())
.output()
.expect("protoc was not in the PATH");
let s = String::from_utf8(output.stdout)
.expect("'protoc --version' output was not a valid string")
.trim()
.to_owned();
if !s.starts_with("libprotoc ") {
panic!("invalid protoc version string: {}", s);
}
s[10..].to_owned()
}
fn main() { fn main() {
let desired_capnp_version_string = get_desired_capnp_version_string();
let capnp_version_string = get_capnp_version_string();
let desired_protoc_version_string = get_desired_protoc_version_string();
let protoc_version_string = get_protoc_version_string();
// Check capnp version
let desired_capnp_major_version =
usize::from_str_radix(desired_capnp_version_string.split_once(".").unwrap().0, 10)
.expect("should be valid int");
if usize::from_str_radix(capnp_version_string.split_once(".").unwrap().0, 10)
.expect("should be valid int")
!= desired_capnp_major_version
{
panic!(
"capnproto version should be major version 1, preferably {} but is {}",
desired_capnp_version_string, capnp_version_string
);
} else if capnp_version_string != desired_capnp_version_string {
println!(
"capnproto version may be untested: {}",
capnp_version_string
);
}
// Check protoc version
let desired_protoc_major_version =
usize::from_str_radix(desired_protoc_version_string.split_once(".").unwrap().0, 10)
.expect("should be valid int");
if usize::from_str_radix(protoc_version_string.split_once(".").unwrap().0, 10)
.expect("should be valid int")
< desired_protoc_major_version
{
panic!(
"protoc version should be at least major version {} but is {}",
desired_protoc_major_version, protoc_version_string
);
} else if protoc_version_string != desired_protoc_version_string {
println!("protoc version may be untested: {}", protoc_version_string);
}
::capnpc::CompilerCommand::new() ::capnpc::CompilerCommand::new()
.file("proto/veilid.capnp") .file("proto/veilid.capnp")
.run() .run()

View File

@ -404,7 +404,7 @@ impl NetworkConnection {
} }
pub fn debug_print(&self, cur_ts: Timestamp) -> String { pub fn debug_print(&self, cur_ts: Timestamp) -> String {
format!("{} <- {} | {:x} | est {} sent {} rcvd {}", format!("{} <- {} | {} | est {} sent {} rcvd {}",
self.descriptor.remote_address(), self.descriptor.remote_address(),
self.descriptor.local().map(|x| x.to_string()).unwrap_or("---".to_owned()), self.descriptor.local().map(|x| x.to_string()).unwrap_or("---".to_owned()),
self.connection_id.as_u64(), self.connection_id.as_u64(),

View File

@ -649,9 +649,10 @@ impl BucketEntryInner {
return false; return false;
} }
// if we have seen the node consistently for longer that UNRELIABLE_PING_SPAN_SECS
match self.peer_stats.rpc_stats.first_consecutive_seen_ts { match self.peer_stats.rpc_stats.first_consecutive_seen_ts {
// If we have not seen seen a node consecutively, it can't be reliable
None => false, None => false,
// If we have seen the node consistently for longer than UNRELIABLE_PING_SPAN_SECS then it is reliable
Some(ts) => { Some(ts) => {
cur_ts.saturating_sub(ts) >= TimestampDuration::new(UNRELIABLE_PING_SPAN_SECS as u64 * 1000000u64) cur_ts.saturating_sub(ts) >= TimestampDuration::new(UNRELIABLE_PING_SPAN_SECS as u64 * 1000000u64)
} }
@ -662,11 +663,13 @@ impl BucketEntryInner {
if self.peer_stats.rpc_stats.failed_to_send >= NEVER_REACHED_PING_COUNT { if self.peer_stats.rpc_stats.failed_to_send >= NEVER_REACHED_PING_COUNT {
return true; return true;
} }
// if we have not heard from the node at all for the duration of the unreliable ping span
// a node is not dead if we haven't heard from it yet,
// but we give it NEVER_REACHED_PING_COUNT chances to ping before we say it's dead
match self.peer_stats.rpc_stats.last_seen_ts { match self.peer_stats.rpc_stats.last_seen_ts {
None => self.peer_stats.rpc_stats.recent_lost_answers < NEVER_REACHED_PING_COUNT, // a node is not dead if we haven't heard from it yet,
// but we give it NEVER_REACHED_PING_COUNT chances to ping before we say it's dead
None => self.peer_stats.rpc_stats.recent_lost_answers >= NEVER_REACHED_PING_COUNT,
// return dead if we have not heard from the node at all for the duration of the unreliable ping span
Some(ts) => { Some(ts) => {
cur_ts.saturating_sub(ts) >= TimestampDuration::new(UNRELIABLE_PING_SPAN_SECS as u64 * 1000000u64) cur_ts.saturating_sub(ts) >= TimestampDuration::new(UNRELIABLE_PING_SPAN_SECS as u64 * 1000000u64)
} }

View File

@ -32,8 +32,13 @@ pub fn decode_dial_info(reader: &veilid_capnp::dial_info::Reader) -> Result<Dial
let request = ws let request = ws
.get_request() .get_request()
.map_err(RPCError::map_protocol("missing WS request"))?; .map_err(RPCError::map_protocol("missing WS request"))?;
DialInfo::try_ws(socket_address, request.to_owned()) DialInfo::try_ws(
.map_err(RPCError::map_protocol("invalid WS dial info")) socket_address,
request
.to_string()
.map_err(RPCError::map_protocol("invalid WS request string"))?,
)
.map_err(RPCError::map_protocol("invalid WS dial info"))
} }
veilid_capnp::dial_info::Which::Wss(wss) => { veilid_capnp::dial_info::Which::Wss(wss) => {
let wss = wss.map_err(RPCError::protocol)?; let wss = wss.map_err(RPCError::protocol)?;
@ -44,8 +49,13 @@ pub fn decode_dial_info(reader: &veilid_capnp::dial_info::Reader) -> Result<Dial
let request = wss let request = wss
.get_request() .get_request()
.map_err(RPCError::map_protocol("missing WSS request"))?; .map_err(RPCError::map_protocol("missing WSS request"))?;
DialInfo::try_wss(socket_address, request.to_owned()) DialInfo::try_wss(
.map_err(RPCError::map_protocol("invalid WSS dial info")) socket_address,
request
.to_string()
.map_err(RPCError::map_protocol("invalid WSS request string"))?,
)
.map_err(RPCError::map_protocol("invalid WSS dial info"))
} }
} }
} }

View File

@ -453,9 +453,9 @@ impl RPCProcessor {
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
/// Search the DHT for a single node closest to a key and add it to the routing table and return the node reference /// Search the network for a single node and add it to the routing table and return the node reference
/// If no node was found in the timeout, this returns None /// If no node was found in the timeout, this returns None
async fn search_dht_single_key( async fn search_for_node_id(
&self, &self,
node_id: TypedKey, node_id: TypedKey,
count: usize, count: usize,
@ -491,14 +491,20 @@ impl RPCProcessor {
}; };
// Routine to call to check if we're done at each step // Routine to call to check if we're done at each step
let check_done = |closest_nodes: &[NodeRef]| { let check_done = |_:&[NodeRef]| {
// If the node we want to locate is one of the closest nodes, return it immediately let Ok(Some(nr)) = routing_table
if let Some(out) = closest_nodes .lookup_node_ref(node_id) else {
.iter() return None;
.find(|x| x.node_ids().contains(&node_id)) };
{
return Some(out.clone()); // ensure we have some dial info for the entry already,
// and that the node is still alive
// if not, we should keep looking for better info
if !matches!(nr.state(get_aligned_timestamp()),BucketEntryState::Dead) &&
nr.has_any_dial_info() {
return Some(nr);
} }
None None
}; };
@ -534,8 +540,10 @@ impl RPCProcessor {
.map_err(RPCError::internal)? .map_err(RPCError::internal)?
{ {
// ensure we have some dial info for the entry already, // ensure we have some dial info for the entry already,
// and that the node is still alive
// if not, we should do the find_node anyway // if not, we should do the find_node anyway
if nr.has_any_dial_info() { if !matches!(nr.state(get_aligned_timestamp()),BucketEntryState::Dead) &&
nr.has_any_dial_info() {
return Ok(Some(nr)); return Ok(Some(nr));
} }
} }
@ -553,7 +561,7 @@ impl RPCProcessor {
// Search in preferred cryptosystem order // Search in preferred cryptosystem order
let nr = match this let nr = match this
.search_dht_single_key(node_id, node_count, fanout, timeout, safety_selection) .search_for_node_id(node_id, node_count, fanout, timeout, safety_selection)
.await .await
{ {
TimeoutOr::Timeout => None, TimeoutOr::Timeout => None,
@ -563,13 +571,6 @@ impl RPCProcessor {
} }
}; };
if let Some(nr) = &nr {
if nr.node_ids().contains(&node_id) {
// found a close node, but not exact within our configured resolve_node timeout
return Ok(None);
}
}
Ok(nr) Ok(nr)
}) })
} }

View File

@ -871,6 +871,47 @@ impl VeilidAPI {
Ok(format!("{:#?}", cm)) Ok(format!("{:#?}", cm))
} }
async fn debug_resolve(&self, args: String) -> VeilidAPIResult<String> {
let netman = self.network_manager()?;
let routing_table = netman.routing_table();
let args: Vec<String> = args.split_whitespace().map(|s| s.to_owned()).collect();
let dest = async_get_debug_argument_at(
&args,
0,
"debug_resolve",
"destination",
get_destination(routing_table.clone()),
)
.await?;
match &dest {
Destination::Direct {
target,
safety_selection: _,
} => Ok(format!(
"Destination: {:#?}\nTarget Entry:\n{}\n",
&dest,
routing_table.debug_info_entry(target.clone())
)),
Destination::Relay {
relay,
target,
safety_selection: _,
} => Ok(format!(
"Destination: {:#?}\nTarget Entry:\n{}\nRelay Entry:\n{}\n",
&dest,
routing_table.clone().debug_info_entry(target.clone()),
routing_table.debug_info_entry(relay.clone())
)),
Destination::PrivateRoute {
private_route: _,
safety_selection: _,
} => Ok(format!("Destination: {:#?}", &dest)),
}
}
async fn debug_ping(&self, args: String) -> VeilidAPIResult<String> { async fn debug_ping(&self, args: String) -> VeilidAPIResult<String> {
let netman = self.network_manager()?; let netman = self.network_manager()?;
let routing_table = netman.routing_table(); let routing_table = netman.routing_table();
@ -1620,6 +1661,7 @@ attach
detach detach
restart network restart network
contact <node>[<modifiers>] contact <node>[<modifiers>]
resolve <destination>
ping <destination> ping <destination>
appmessage <destination> <data> appmessage <destination> <data>
appcall <destination> <data> appcall <destination> <data>
@ -1707,6 +1749,8 @@ record list <local|remote>
self.debug_app_call(rest).await self.debug_app_call(rest).await
} else if arg == "appreply" { } else if arg == "appreply" {
self.debug_app_reply(rest).await self.debug_app_reply(rest).await
} else if arg == "resolve" {
self.debug_resolve(rest).await
} else if arg == "contact" { } else if arg == "contact" {
self.debug_contact(rest).await self.debug_contact(rest).await
} else if arg == "nodeinfo" { } else if arg == "nodeinfo" {

View File

@ -1,6 +1,6 @@
# --- Bumpversion match - do not reorder # --- Bumpversion match - do not reorder
name: veilid name: veilid
version: 0.2.1 version: 0.2.2
# --- # ---
description: Veilid Framework description: Veilid Framework
homepage: https://veilid.com homepage: https://veilid.com

View File

@ -1,7 +1,7 @@
[package] [package]
# --- Bumpversion match - do not reorder # --- Bumpversion match - do not reorder
name = "veilid-flutter" name = "veilid-flutter"
version = "0.2.1" version = "0.2.2"
# --- # ---
authors = ["Veilid Team <contact@veilid.com>"] authors = ["Veilid Team <contact@veilid.com>"]
license = "MPL-2.0" license = "MPL-2.0"
@ -38,7 +38,7 @@ parking_lot = "^0"
backtrace = "^0" backtrace = "^0"
serde_json = "^1" serde_json = "^1"
serde = "^1" serde = "^1"
futures-util = { version = "^0", default_features = false, features = [ futures-util = { version = "^0", default-features = false, features = [
"alloc", "alloc",
] } ] }
cfg-if = "^1" cfg-if = "^1"

View File

@ -1,7 +1,7 @@
[tool.poetry] [tool.poetry]
# --- Bumpversion match - do not reorder # --- Bumpversion match - do not reorder
name = "veilid" name = "veilid"
version = "0.2.1" version = "0.2.2"
# --- # ---
description = "" description = ""
authors = ["Veilid Team <contact@veilid.com>"] authors = ["Veilid Team <contact@veilid.com>"]

View File

@ -1,7 +1,7 @@
[package] [package]
# --- Bumpversion match - do not reorder # --- Bumpversion match - do not reorder
name = "veilid-server" name = "veilid-server"
version = "0.2.1" version = "0.2.2"
# --- # ---
description = "Veilid Server" description = "Veilid Server"
authors = ["Veilid Team <contact@veilid.com>"] authors = ["Veilid Team <contact@veilid.com>"]
@ -61,7 +61,7 @@ serde = "^1"
serde_derive = "^1" serde_derive = "^1"
serde_yaml = "^0" serde_yaml = "^0"
json = "^0" json = "^0"
futures-util = { version = "^0", default_features = false, features = [ futures-util = { version = "^0", default-features = false, features = [
"alloc", "alloc",
] } ] }
url = "^2" url = "^2"

View File

@ -1,7 +1,7 @@
[package] [package]
# --- Bumpversion match - do not reorder # --- Bumpversion match - do not reorder
name = "veilid-tools" name = "veilid-tools"
version = "0.2.1" version = "0.2.2"
# --- # ---
description = "A collection of baseline tools for Rust development use by Veilid and Veilid-enabled Rust applications" description = "A collection of baseline tools for Rust development use by Veilid and Veilid-enabled Rust applications"
authors = ["Veilid Team <contact@veilid.com>"] authors = ["Veilid Team <contact@veilid.com>"]
@ -41,7 +41,7 @@ eyre = "0.6.8"
static_assertions = "1.1.0" static_assertions = "1.1.0"
cfg-if = "1.0.0" cfg-if = "1.0.0"
thiserror = "1.0.47" thiserror = "1.0.47"
futures-util = { version = "0.3.28", default_features = false, features = [ futures-util = { version = "0.3.28", default-features = false, features = [
"alloc", "alloc",
] } ] }
parking_lot = "0.12.1" parking_lot = "0.12.1"

View File

@ -1,7 +1,7 @@
[package] [package]
# --- Bumpversion match - do not reorder # --- Bumpversion match - do not reorder
name = "veilid-wasm" name = "veilid-wasm"
version = "0.2.1" version = "0.2.2"
# --- # ---
authors = ["Veilid Team <contact@veilid.com>"] authors = ["Veilid Team <contact@veilid.com>"]
license = "MPL-2.0" license = "MPL-2.0"
@ -15,7 +15,7 @@ default = ["veilid-core/default-wasm"]
crypto-test = ["veilid-core/crypto-test"] crypto-test = ["veilid-core/crypto-test"]
[dependencies] [dependencies]
veilid-core = { version = "0.2.0", path = "../veilid-core", default-features = false } veilid-core = { version = "0.2.2", path = "../veilid-core", default-features = false }
tracing = { version = "^0", features = ["log", "attributes"] } tracing = { version = "^0", features = ["log", "attributes"] }
tracing-wasm = "^0" tracing-wasm = "^0"

View File

@ -1,4 +1,6 @@
#!/bin/bash #!/bin/bash
# Fail out if any step has an error
set -e set -e
if [ "$1" == "patch" ]; then if [ "$1" == "patch" ]; then
@ -15,5 +17,15 @@ else
exit 1 exit 1
fi fi
# Change version of crates and packages everywhere
bumpversion $PART bumpversion $PART
# Get the new version we bumped to
NEW_VERSION=$(cat .bumpversion.cfg | grep current_version\ = | cut -d\ -f3)
echo NEW_VERSION=$NEW_VERSION
# Update crate dependencies for the crates we publish
cargo upgrade -p veilid-tools@$NEW_VERSION -p veilid-core@$NEW_VERSION
# Update lockfile
cargo update cargo update