Document-Based API
Maintains an in-memory document tree for editing and manipulation, unlike std.zon which parses into typed structures.
Read, write, and manipulate ZON files — complementary to std.zon
const std = @import("std");
const zon = @import("zon");
pub fn main() !void {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
defer _ = gpa.deinit();
const allocator = gpa.allocator();
zon.disableUpdateCheck();
var doc = zon.create(allocator);
defer doc.deinit();
try doc.setIdentifier("name", "my_app");
try doc.setString("version", "1.0.0");
try doc.setInt("port", 8080);
try doc.setString("database.host", "localhost");
try doc.saveAs("config.zon");
}Output (config.zon):
.{
.database = .{
.host = "localhost",
},
.name = .my_app,
.port = 8080,
.version = "1.0.0",
}zig fetch --save https://github.com/muhammad-fiaz/zon.zig/archive/refs/tags/0.0.3.tar.gzThen in your build.zig:
const zon_dep = b.dependency("zon", .{
.target = target,
.optimize = optimize,
});
exe.root_module.addImport("zon", zon_dep.module("zon"));MIT License - View on GitHub