feat: initial meshservice implementation

Generic decentralized service layer for mesh networks.
Includes FAPP (psychotherapy) and Housing as reference services.

- ServiceMessage with Ed25519 signatures
- Wire protocol (64-byte header + CBOR)
- ServiceRouter with pluggable handlers
- Verification framework (3 trust levels)
- 32 tests, 3 examples
This commit is contained in:
2026-04-01 08:23:00 +02:00
commit c757494cbe
1280 changed files with 26040 additions and 0 deletions

View File

@@ -0,0 +1 @@
14c74e6cc57bc003

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[12478428894219133322,"build_script_build",false,6182447600559289265]],"local":[{"RerunIfChanged":{"output":"debug/build/anyhow-1a588860b974a585/output","paths":["src/nightly.rs"]}},{"RerunIfEnvChanged":{"var":"RUSTC_BOOTSTRAP","val":null}}],"rustflags":[],"config":0,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
080c3b192cbefc31

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"default\", \"std\"]","declared_features":"[\"backtrace\", \"default\", \"std\"]","target":1563897884725121975,"profile":15657897354478470176,"path":1693576244404955175,"deps":[[12478428894219133322,"build_script_build",false,270352065498105620]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/anyhow-66c12ca144eef53f/dep-lib-anyhow","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
b173cd315677cc55

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"default\", \"std\"]","declared_features":"[\"backtrace\", \"default\", \"std\"]","target":5408242616063297496,"profile":2225463790103693989,"path":3442131219536353792,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/anyhow-ca06f8ac4a2f2c3e/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
0ee11ac5f02cdef9

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[]","target":4098124618827574291,"profile":15657897354478470176,"path":14328943460988398990,"deps":[[10520923840501062997,"generic_array",false,3773245237398325569]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/block-buffer-7a20780013acbdd2/dep-lib-block_buffer","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
41075902bb735971

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[\"core\", \"rustc-dep-of-std\"]","target":13840298032947503755,"profile":15657897354478470176,"path":11664408126744184737,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cfg-if-59c7dc747326a75e/dep-lib-cfg_if","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
c63b6e4828a5844a

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":2165534667411437309,"profile":15657897354478470176,"path":7625884949456182092,"deps":[[1874735532026338296,"ciborium_ll",false,9587971610200068557],[10057415176380654875,"ciborium_io",false,6186247551662299042],[13548984313718623784,"serde",false,17557642859501998627]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ciborium-acc63710e0615564/dep-lib-ciborium","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
a21776415ff7d955

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"alloc\", \"std\"]","declared_features":"[\"alloc\", \"std\"]","target":11045875261356110034,"profile":15657897354478470176,"path":12499391499162900195,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ciborium-io-6951b4a5d29f53aa/dep-lib-ciborium_io","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
cd51815661510f85

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[\"alloc\", \"std\"]","target":6259365080488940533,"profile":15657897354478470176,"path":1511942723809443561,"deps":[[10057415176380654875,"ciborium_io",false,6186247551662299042],[16598877151661132269,"half",false,5047299574991150906]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ciborium-ll-88ab61518aa1cb64/dep-lib-ciborium_ll","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
4fccfb3da05ca39c

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[]","target":2330704043955282025,"profile":15657897354478470176,"path":5374544196431185112,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cpufeatures-28fc5e4445676cbe/dep-lib-cpufeatures","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
309d2fb87085c7f5

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"std\"]","declared_features":"[\"getrandom\", \"rand_core\", \"std\"]","target":12082577455412410174,"profile":15657897354478470176,"path":626198998635846912,"deps":[[857979250431893282,"typenum",false,4221280369078554357],[10520923840501062997,"generic_array",false,3773245237398325569]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/crypto-common-1f5d071e24d1ff70/dep-lib-crypto_common","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13595581133353633439,"build_script_build",false,9680798956361367684]],"local":[{"Precalculated":"4.1.3"}],"rustflags":[],"config":0,"compile_kind":0}

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"alloc\", \"digest\", \"precomputed-tables\", \"zeroize\"]","declared_features":"[\"alloc\", \"default\", \"digest\", \"ff\", \"group\", \"group-bits\", \"legacy_compatibility\", \"precomputed-tables\", \"rand_core\", \"serde\", \"zeroize\"]","target":5408242616063297496,"profile":2225463790103693989,"path":7174348827083985603,"deps":[[8576480473721236041,"rustc_version",false,11653285870931929195]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/curve25519-dalek-9773093b66dd7804/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
eea5a32d17e7bacf

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"alloc\", \"digest\", \"precomputed-tables\", \"zeroize\"]","declared_features":"[\"alloc\", \"default\", \"digest\", \"ff\", \"group\", \"group-bits\", \"legacy_compatibility\", \"precomputed-tables\", \"rand_core\", \"serde\", \"zeroize\"]","target":115635582535548150,"profile":15657897354478470176,"path":4083182317698697298,"deps":[[1513171335889705703,"curve25519_dalek_derive",false,13818975794895721892],[7667230146095136825,"cfg_if",false,8167686646248572737],[12865141776541797048,"zeroize",false,6064618043662827531],[13595581133353633439,"build_script_build",false,2853400182041566204],[17003143334332120809,"subtle",false,7349182593580574281],[17475753849556516473,"digest",false,10349964646283369410],[17620084158052398167,"cpufeatures",false,11286966934425029711]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/curve25519-dalek-da7b1e961a8af266/dep-lib-curve25519_dalek","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[]","target":13207463886205555035,"profile":2225463790103693989,"path":6157174649329929178,"deps":[[4289358735036141001,"proc_macro2",false,1225562667690107950],[10420560437213941093,"syn",false,15577739431691687943],[13111758008314797071,"quote",false,11911208238803379017]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/curve25519-dalek-derive-7cf843080807c6f7/dep-lib-curve25519_dalek_derive","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
c25b92630276a28f

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"alloc\", \"block-buffer\", \"core-api\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"blobby\", \"block-buffer\", \"const-oid\", \"core-api\", \"default\", \"dev\", \"mac\", \"oid\", \"rand_core\", \"std\", \"subtle\"]","target":7510122432137863311,"profile":15657897354478470176,"path":12095025020939357582,"deps":[[6039282458970808711,"crypto_common",false,17710270778830724400],[10626340395483396037,"block_buffer",false,18004877772884467982]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/digest-cec20685d055a320/dep-lib-digest","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
9fda639092d53ef8

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"alloc\", \"serde\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"pem\", \"pkcs8\", \"serde\", \"serde_bytes\", \"std\", \"zeroize\"]","target":108444017173925020,"profile":15657897354478470176,"path":3273488105189772409,"deps":[[13548984313718623784,"serde",false,17557642859501998627],[13895928991373641935,"signature",false,13483340919628350622]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ed25519-1f4a2dcf31d17e0c/dep-lib-ed25519","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
240bfc590c1b3380

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"alloc\", \"default\", \"fast\", \"serde\", \"std\", \"zeroize\"]","declared_features":"[\"alloc\", \"asm\", \"batch\", \"default\", \"digest\", \"fast\", \"hazmat\", \"legacy_compatibility\", \"merlin\", \"pem\", \"pkcs8\", \"rand_core\", \"serde\", \"signature\", \"std\", \"zeroize\"]","target":14975934594160758548,"profile":15657897354478470176,"path":7979885501339013109,"deps":[[9857275760291862238,"sha2",false,10134317529214957547],[12865141776541797048,"zeroize",false,6064618043662827531],[13548984313718623784,"serde",false,17557642859501998627],[13595581133353633439,"curve25519_dalek",false,14968530398255228398],[14313198213031843936,"ed25519",false,17887969595426593439],[17003143334332120809,"subtle",false,7349182593580574281]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ed25519-dalek-002d933f9b6dab94/dep-lib-ed25519_dalek","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[10520923840501062997,"build_script_build",false,6176974129916124120]],"local":[{"Precalculated":"0.14.7"}],"rustflags":[],"config":0,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
41c98f498d425d34

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"more_lengths\"]","declared_features":"[\"more_lengths\", \"serde\", \"zeroize\"]","target":13084005262763373425,"profile":15657897354478470176,"path":6713269656225054151,"deps":[[857979250431893282,"typenum",false,4221280369078554357],[10520923840501062997,"build_script_build",false,3024411712541673067]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/generic-array-93803fb482d76448/dep-lib-generic_array","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"more_lengths\"]","declared_features":"[\"more_lengths\", \"serde\", \"zeroize\"]","target":12318548087768197662,"profile":2225463790103693989,"path":23751617334769604,"deps":[[5398981501050481332,"version_check",false,9367233950438393495]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/generic-array-f8314dea6bb2335e/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
097de772f262d324

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[\"std\"]","declared_features":"[\"compiler_builtins\", \"core\", \"custom\", \"js\", \"js-sys\", \"linux_disable_fallback\", \"rdrand\", \"rustc-dep-of-std\", \"std\", \"test-in-browser\", \"wasm-bindgen\"]","target":16244099637825074703,"profile":15657897354478470176,"path":3910037456269710281,"deps":[[7667230146095136825,"cfg_if",false,8167686646248572737],[17159683253194042242,"libc",false,9010325384394673773]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/getrandom-77f4a1e3527e4689/dep-lib-getrandom","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
3adf53c2389c0b46

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[\"alloc\", \"arbitrary\", \"bytemuck\", \"default\", \"nightly\", \"num-traits\", \"rand_distr\", \"rkyv\", \"serde\", \"std\", \"use-intrinsics\", \"zerocopy\"]","target":5584728948347947946,"profile":15657897354478470176,"path":3919245320315347873,"deps":[[3612005756660025491,"zerocopy",false,2195355606882984239],[7667230146095136825,"cfg_if",false,8167686646248572737]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/half-e475084c70148a47/dep-lib-half","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
6d8e87c7321b0b7d

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":17682796336736096309,"profile":6200076328592068522,"path":14086692266756903441,"deps":[[17159683253194042242,"build_script_build",false,1714908298102207015]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-59506d9ef8a808e3/dep-lib-libc","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
2772c0da0294cc17

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[17159683253194042242,"build_script_build",false,10800137228864548373]],"local":[{"RerunIfChanged":{"output":"debug/build/libc-c18a5f818b9f6ae4/output","paths":["build.rs"]}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_FREEBSD_VERSION","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_MUSL_V1_2_3","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_GNU_TIME_BITS","val":null}}],"rustflags":[],"config":0,"compile_kind":0}

View File

@@ -0,0 +1 @@
156ef18b96cbe195

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":5408242616063297496,"profile":1565149285177326037,"path":7571440502161442371,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-d98836a0e9f0f1c1/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@@ -0,0 +1 @@
c733e1493a571e62

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[]","target":14980014761449094881,"profile":8731458305071235362,"path":10763286916239946207,"deps":[[5306016253860807931,"ed25519_dalek",false,9237757000530266916],[8008191657135824715,"thiserror",false,16246221604838674752],[9857275760291862238,"sha2",false,10134317529214957547],[11068292541898289468,"x25519_dalek",false,5091722270942404690],[11934022306856972276,"ciborium",false,5369598248164932550],[12478428894219133322,"anyhow",false,3601962898600692744],[13208667028893622512,"rand",false,880322417622823915],[13298363700532491723,"tokio",false,15096612428861543339],[13548984313718623784,"serde",false,17557642859501998627]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/meshservice-286f0426bc447b66/dep-lib-meshservice","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
41ad972ccad3c453

View File

@@ -0,0 +1 @@
{"rustc":1100337564441796057,"features":"[]","declared_features":"[]","target":17892001967822137877,"profile":8731458305071235362,"path":12575946806655443609,"deps":[[5306016253860807931,"ed25519_dalek",false,9237757000530266916],[8008191657135824715,"thiserror",false,16246221604838674752],[9857275760291862238,"sha2",false,10134317529214957547],[11068292541898289468,"x25519_dalek",false,5091722270942404690],[11934022306856972276,"ciborium",false,5369598248164932550],[12478428894219133322,"anyhow",false,3601962898600692744],[13208667028893622512,"rand",false,880322417622823915],[13298363700532491723,"tokio",false,15096612428861543339],[13548984313718623784,"serde",false,17557642859501998627],[13795434074488683522,"meshservice",false,7070184372877472711]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/meshservice-2dc62cffd813a3ff/dep-example-housing_service","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}

View File

@@ -0,0 +1 @@
This file has an mtime of when this was started.

Some files were not shown because too many files have changed in this diff Show More