Implement Phase 9: client libraries (Go, Rust, Lisp, Python)
- clients/README.md: canonical API surface and error type reference - clients/testdata/: shared JSON response fixtures - clients/go/: mciasgoclient package; net/http + TLS 1.2+; sync.RWMutex token state; DisallowUnknownFields on all decoders; 25 tests pass - clients/rust/: async mcias-client crate; reqwest+rustls (no OpenSSL); thiserror MciasError enum; Arc<RwLock> token state; 22+1 tests pass; cargo clippy -D warnings clean - clients/lisp/: ASDF mcias-client; dexador HTTP, yason JSON; mcias-error condition hierarchy; Hunchentoot mock-dispatcher; 37 fiveam checks pass on SBCL 2.6.1; yason boolean normalisation in validate-token - clients/python/: mcias_client package (Python 3.11+); httpx sync; py.typed; dataclasses; 32 pytest tests; mypy --strict + ruff clean - test/mock/mockserver.go: in-memory mock server for Go client tests - ARCHITECTURE.md §19: updated per-language notes to match implementation - PROGRESS.md: Phase 9 marked complete - .gitignore: exclude clients/rust/target/, python .venv, .pytest_cache, .fasl files Security: token never logged or exposed in error messages in any library; TLS enforced in all four languages; token stored under lock/mutex/RwLock
This commit is contained in:
@@ -0,0 +1 @@
|
||||
{"rustc":16243257175721966122,"features":"[\"client\", \"default\", \"full\", \"http1\", \"http2\", \"server\"]","declared_features":"[\"capi\", \"client\", \"default\", \"ffi\", \"full\", \"http1\", \"http2\", \"nightly\", \"server\", \"tracing\"]","target":9574292076208557625,"profile":2498339768060210797,"path":17739702805859660508,"deps":[[302948626015856208,"futures_core",false,16395551869408918501],[1074848931188612602,"atomic_waker",false,6087083597088343016],[1569313478171189446,"want",false,12833412699599128963],[1615478164327904835,"pin_utils",false,16577099497658178688],[2251399859588827949,"pin_project_lite",false,15221541811940566033],[2620434475832828286,"http",false,9822450932427326627],[3158163345960637315,"h2",false,9077731764155669858],[3666196340704888985,"smallvec",false,15518373137500000532],[3870702314125662939,"bytes",false,1322042245192246152],[6163892036024256188,"httparse",false,4208578687223024287],[6304235478050270880,"httpdate",false,2137917216818846010],[9128867168860799549,"futures_channel",false,14115314800078754606],[9938278000850417404,"itoa",false,17129207631860661708],[13298363700532491723,"tokio",false,634726864496810915],[14084095096285906100,"http_body",false,17374140038047555153]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/hyper-9e8ebd1905feee45/dep-lib-hyper","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||
Reference in New Issue
Block a user