{"id":16476006,"url":"https://github.com/softprops/zig-jsonlog","last_synced_at":"2026-01-21T02:02:27.673Z","repository":{"id":209330866,"uuid":"723587903","full_name":"softprops/zig-jsonlog","owner":"softprops","description":"format zig std logs as structured JSON","archived":false,"fork":false,"pushed_at":"2024-06-08T22:20:09.000Z","size":28,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-18T02:12:33.809Z","etag":null,"topics":["json","logging","zig","zig-library","zig-package","zigdex-lib","ziglang"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/softprops.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-26T06:12:18.000Z","updated_at":"2024-06-08T22:20:12.000Z","dependencies_parsed_at":"2024-03-20T15:42:55.266Z","dependency_job_id":"e28ed0c0-b002-49b5-bff6-d60527f72351","html_url":"https://github.com/softprops/zig-jsonlog","commit_stats":null,"previous_names":["softprops/zig-jsonlog"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/softprops/zig-jsonlog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fzig-jsonlog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fzig-jsonlog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fzig-jsonlog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fzig-jsonlog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softprops","download_url":"https://codeload.github.com/softprops/zig-jsonlog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fzig-jsonlog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28622472,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T23:49:58.628Z","status":"online","status_checked_at":"2026-01-21T02:00:08.227Z","response_time":86,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json","logging","zig","zig-library","zig-package","zigdex-lib","ziglang"],"created_at":"2024-10-11T12:41:16.370Z","updated_at":"2026-01-21T02:02:27.651Z","avatar_url":"https://github.com/softprops.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    jsonlog\n\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n    A zero-allocation JSON formatting logging library for zig\n\u003c/div\u003e\n\n---\n\n[![ci](https://github.com/softprops/zig-jsonlog/actions/workflows/ci.yml/badge.svg)](https://github.com/softprops/zig-jsonlog/actions/workflows/ci.yml) ![License Info](https://img.shields.io/github/license/softprops/zig-jsonlog) ![Releases](https://img.shields.io/github/v/release/softprops/zig-jsonlog) [![Zig Support](https://img.shields.io/badge/zig-0.13.0-black?logo=zig)](https://ziglang.org/documentation/0.13.0/)\n\n## 🍬 features\n\n- make your logs easy to query with tools like aws cloud watch insights\n- zero-allocation\n- append arbitrary metadata to your logs\n- automatic newline insertion\n\nComing soon...\n\n- configurable writers\n\n  currently jsonlog writes to stderr, as the default std log fn does. we'd like to make the writer user configurable.\n\n## examples\n\n```zig\nconst std = @import(\"std\");\nconst jsonLog = @import(\"jsonlog\");\nconst log = std.log.scoped(.demo);\n\npub const std_options: std.Options = .{\n    // configure the std lib log api fn to use jsonlog formatting\n    .logFn = jsonLog.logFn,\n};\n\npub fn main() void {\n    // std log interface\n    log.debug(\"DEBUG\", .{});\n    log.info(\"INFO\", .{});\n    log.warn(\"WARN\", .{});\n    log.err(\"ERR\", .{});\n\n    // jsonLog interface for provoding arbitrary structured metadata\n    jsonLog.info(\"things are happening\", .{}, .{\n        .endpoint = \"/home\",\n        .method = \"GET\",\n    });\n\n    // create a custom scope for doing the same\n    jsonLog.scoped(.demo).warn(\"things could be better\", .{}, .{\n        .endpoint = \"/home\",\n        .method = \"GET\",\n    });\n}\n```\n\n```json\n{\"ts\":\"2024-03-20T15:07:15.363Z\",\"level\":\"debug\",\"msg\":\"DEBUG\",\"scope\":\"demo\"}\n{\"ts\":\"2024-03-20T15:07:15.364Z\",\"level\":\"info\",\"msg\":\"INFO\",\"scope\":\"demo\"}\n{\"ts\":\"2024-03-20T15:07:15.364Z\",\"level\":\"warning\",\"msg\":\"WARN\",\"scope\":\"demo\"}\n{\"ts\":\"2024-03-20T15:07:15.364Z\",\"level\":\"error\",\"msg\":\"ERR\",\"scope\":\"demo\"}\n{\"ts\":\"2024-03-20T15:07:15.364Z\",\"level\":\"info\",\"msg\":\"things are happening\",\"scope\":\"default\",\"meta\":{\"endpoint\":\"/home\",\"method\":\"GET\"}}\n{\"ts\":\"2024-03-20T15:07:15.364Z\",\"level\":\"warning\",\"msg\":\"things could be better\",\"scope\":\"demo\",\"meta\":{\"endpoint\":\"/home\",\"method\":\"GET\"}}\n```\n\n## 📼 installing\n\nCreate a new exec project with `zig init-exe`. Copy the echo handler example above into `src/main.zig`\n\nCreate a `build.zig.zon` file to declare a dependency\n\n\u003e .zon short for \"zig object notation\" files are essentially zig structs. `build.zig.zon` is zigs native package manager convention for where to declare dependencies\n\nStarting in zig 0.12.0, you can use and should prefer\n\n```sh\nzig fetch --save https://github.com/softprops/zig-jsonlog/archive/refs/tags/v0.2.1.tar.gz\n```\n\notherwise, to manually add it, do so as follows\n\n```diff\n.{\n    .name = \"my-app\",\n    .version = \"0.1.0\",\n    .dependencies = .{\n+       // 👇 declare dep properties\n+        .jsonlog = .{\n+            // 👇 uri to download\n+            .url = \"https://github.com/softprops/zig-jsonlog/archive/refs/tags/v0.2.1.tar.gz\",\n+            // 👇 hash verification\n+            .hash = \"...\",\n+        },\n    },\n}\n```\n\n\u003e the hash below may vary. you can also depend any tag with `https://github.com/softprops/zig-jsonlog/archive/refs/tags/v{version}.tar.gz` or current main with `https://github.com/softprops/zig-jsonlog/archive/refs/heads/main/main.tar.gz`. to resolve a hash omit it and let zig tell you the expected value.\n\nAdd the following in your `build.zig` file\n\n```diff\nconst std = @import(\"std\");\n\npub fn build(b: *std.Build) void {\n    const target = b.standardTargetOptions(.{});\n\n    const optimize = b.standardOptimizeOption(.{});\n    // 👇 de-reference jsonlog dep from build.zig.zon\n+    const jsonlog = b.dependency(\"jsonlog\", .{\n+        .target = target,\n+        .optimize = optimize,\n+    }).module(\"jsonlog\");\n    var exe = b.addExecutable(.{\n        .name = \"your-exe\",\n        .root_source_file = .{ .path = \"src/main.zig\" },\n        .target = target,\n        .optimize = optimize,\n    });\n    // 👇 add the jsonlog module to executable\n+    exe.root_mode.addImport(\"jsonlog\", jsonlog);\n\n    b.installArtifact(exe);\n}\n```\n\n## 🥹 for budding ziglings\n\nDoes this look interesting but you're new to zig and feel left out? No problem, zig is young so most us of our new are as well. Here are some resources to help get you up to speed on zig\n\n- [the official zig website](https://ziglang.org/)\n- [zig's one-page language documentation](https://ziglang.org/documentation/0.13.0/)\n- [ziglearn](https://ziglearn.org/)\n- [ziglings exercises](https://github.com/ratfactor/ziglings)\n\n\\- softprops 2024\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Fzig-jsonlog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftprops%2Fzig-jsonlog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Fzig-jsonlog/lists"}