Skip to content

ZON.zigDocument-Based ZON Library

Read, write, and manipulate ZON files — complementary to std.zon

zon.zig

Quick Start

zig
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):

zig
.{
    .database = .{
        .host = "localhost",
    },
    .name = .my_app,
    .port = 8080,
    .version = "1.0.0",
}

Installation

bash
zig fetch --save https://github.com/muhammad-fiaz/zon.zig/archive/refs/tags/0.0.3.tar.gz

Then in your build.zig:

zig
const zon_dep = b.dependency("zon", .{
    .target = target,
    .optimize = optimize,
});
exe.root_module.addImport("zon", zon_dep.module("zon"));

License

MIT License - View on GitHub

Released under the MIT License.