Zfetch (and hzzp) 0.1.0 Release

Hey everyone, I’d like to announce the first semi-stable releases of my hzzp and zfetch projects. These two projects are intended to help everyone deal with their HTTP needs with ease.

This is the first semi-stable release for either project, and many thanks to @fengb and @mattnite for their use of these projects, they have helped squash a lot of smaller, annoying bugs.

hzzp aims to provide lower-level, more performant interfaces more suited for very high-performance code (its networking though, so I doubt this is a serious issue). hzzp does absolutely no heap allocation in a hot code path (or any for that matter), instead using a single buffer that the user provides, and provides is entirely I/O agnostic, all types are generic for a std.io.Reader or std.io.Writer.

zfetch builds on top of hzzp to provide a more ergonomic “fetch” style api (hzzp isn’t very simple, or nice looking to use due to it’s design). zfetch supports HTTPS out of the box by taking advantage of alexnask’s iguanaTLS and easy, correct, cross-platform networking with MasterQ32’s zig-network.

hzzp is entirely standalone, it has no external dependencies. However, due to zfetch’s nature, it has dependencies but supports both community package managers (gyro and zigmod) and being included as a git submodule.

Feedback is certainly welcome, and I’d love for people to keep finding things that break and need fixing.

8 Likes

Wow that’s a lot of good work and great job at explaining how the design decisions you made relate to intended usage patterns.

For great justice!

3 Likes