buzz icon indicating copy to clipboard operation
buzz copied to clipboard

http lib

Open giann opened this issue 3 years ago • 4 comments

  • [x] Client
  • [x] TLS
  • [x] Proxy
  • [ ] Server

giann avatar Aug 30 '22 06:08 giann

http + tls now available in zig std lib:

const std = @import("std");

pub fn main() !void {
    var client = std.http.Client{
        .allocator = std.heap.c_allocator,
    };

    try client.ca_bundle.addCertsFromFile(
        client.allocator,
        std.fs.cwd(),
        "root.cer",
    );

    var request = try client.request(
        try std.Uri.parse("https://www.boredapi.com/api/activity"),
        .{},
        .{},
    );

    var buffer = [_]u8{0} ** 1024;
    _ = try request.readAll(&buffer);

    std.debug.print("Read:\n{s}\n", .{buffer});
}

Will fetch trusted certificates on its own only on linux. macOS is maybe harder since certificates are in the keychain.

giann avatar Jan 12 '23 19:01 giann

Certificate are fetched since https://github.com/ziglang/zig/pull/14325

giann avatar Jan 17 '23 08:01 giann

Could also use libcurl

giann avatar Feb 09 '23 14:02 giann

https://blog.orhun.dev/zig-bits-04/

giann avatar Jul 12 '23 13:07 giann