The web examples (examples/web-response.0, the Response.text(...) API, the zero routes --json command) show a clear server-side HTTP story — pub fun GET(request: Request) -> Response, Next.js-style routing. What's not clear from the README, examples, or the docs-site articles I've looked at is whether there's an HTTP client primitive either today or planned.
Concretely: for the use case of a native CLI / tool that calls a few third-party REST APIs over HTTPS, parses JSON responses (great that std.json is already in stdlib — examples/std-data-formats.0), and aggregates the results, is the intended path:
- There's already a
std.http.client.get(url)-ish thing in the stdlib that I missed scrolling through the examples?
- It's planned but not yet shipped — even rough timing ("weeks vs months vs not yet on the roadmap") would help me decide whether to wait or plan around it.
- The recommendation is to FFI out to
libcurl (or similar) via the examples/c-interop/ pattern.
- The web stack is intentionally scoped to server-side only for the foreseeable future — a totally reasonable scoping choice given the Vercel-edge use case; just want to know explicitly.
Asking because I'm evaluating Zero as a possible re-implementation target for the pure-math / parsing pieces of a small Bitcoin price viewer (Kotlin Multiplatform UI + Rust core today: https://github.com/PeterXMR/spotprice). Whether the HTTP-client piece exists determines whether porting the network-facing modules is in scope, or whether Zero is the right fit only for the math / aggregation pieces (which I'd port regardless — core/convert/ and core/aggregator/median.rs look like a good fit for typed effects + choice + generics).
I noticed #20 covers structured concurrency separately, so I've kept this issue focused on just the HTTP-client question — happy to keep the concurrency discussion there.
If there's a roadmap doc or design discussion thread I missed, a pointer is fine. Thanks for putting Zero in the open; the examples have been a good read regardless of where it lands for my use case.
The web examples (
examples/web-response.0, theResponse.text(...)API, thezero routes --jsoncommand) show a clear server-side HTTP story —pub fun GET(request: Request) -> Response, Next.js-style routing. What's not clear from the README, examples, or the docs-site articles I've looked at is whether there's an HTTP client primitive either today or planned.Concretely: for the use case of a native CLI / tool that calls a few third-party REST APIs over HTTPS, parses JSON responses (great that
std.jsonis already in stdlib —examples/std-data-formats.0), and aggregates the results, is the intended path:std.http.client.get(url)-ish thing in the stdlib that I missed scrolling through the examples?libcurl(or similar) via theexamples/c-interop/pattern.Asking because I'm evaluating Zero as a possible re-implementation target for the pure-math / parsing pieces of a small Bitcoin price viewer (Kotlin Multiplatform UI + Rust core today: https://github.com/PeterXMR/spotprice). Whether the HTTP-client piece exists determines whether porting the network-facing modules is in scope, or whether Zero is the right fit only for the math / aggregation pieces (which I'd port regardless —
core/convert/andcore/aggregator/median.rslook like a good fit for typed effects +choice+ generics).I noticed #20 covers structured concurrency separately, so I've kept this issue focused on just the HTTP-client question — happy to keep the concurrency discussion there.
If there's a roadmap doc or design discussion thread I missed, a pointer is fine. Thanks for putting Zero in the open; the examples have been a good read regardless of where it lands for my use case.