{"id":18307325,"url":"https://github.com/zig-gamedev/ztracy","last_synced_at":"2025-04-05T17:31:55.935Z","repository":{"id":261144661,"uuid":"883383770","full_name":"zig-gamedev/ztracy","owner":"zig-gamedev","description":"Performance markers for Tracy Frame Profiler in Zig.","archived":false,"fork":false,"pushed_at":"2025-03-11T01:41:37.000Z","size":339,"stargazers_count":14,"open_issues_count":1,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-21T08:04:38.269Z","etag":null,"topics":["bindings","profiling","tracy","zig"],"latest_commit_sha":null,"homepage":"","language":"C++","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/zig-gamedev.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2024-11-04T21:45:01.000Z","updated_at":"2025-03-20T15:26:54.000Z","dependencies_parsed_at":"2024-11-05T00:17:07.285Z","dependency_job_id":"dd550dc7-4c68-45fb-8177-6378b2baeac0","html_url":"https://github.com/zig-gamedev/ztracy","commit_stats":null,"previous_names":["zig-gamedev/ztracy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zig-gamedev%2Fztracy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zig-gamedev%2Fztracy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zig-gamedev%2Fztracy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zig-gamedev%2Fztracy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zig-gamedev","download_url":"https://codeload.github.com/zig-gamedev/ztracy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247374780,"owners_count":20928891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bindings","profiling","tracy","zig"],"created_at":"2024-11-05T16:03:52.786Z","updated_at":"2025-04-05T17:31:55.408Z","avatar_url":"https://github.com/zig-gamedev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [ztracy](https://github.com/zig-gamedev/ztracy)\n\nPerformance markers for [Tracy 0.11.1](https://github.com/wolfpld/tracy) in Zig\n\nInitial Zig bindings created by [Martin Wickham](https://github.com/SpexGuy/Zig-Tracy)\n\n## Getting started\n\nExample `build.zig`:\n\n```zig\npub fn build(b: *std.Build) void {\n    const options = .{\n        .enable_ztracy = b.option(\n            bool,\n            \"enable_ztracy\",\n            \"Enable Tracy profile markers\",\n        ) orelse false,\n        .enable_fibers = b.option(\n            bool,\n            \"enable_fibers\",\n            \"Enable Tracy fiber support\",\n        ) orelse false,\n        .on_demand = b.option(\n            bool,\n            \"on_demand\",\n            \"Build tracy with TRACY_ON_DEMAND\",\n        ) orelse false,\n    };\n\n    const exe = b.addExecutable(.{ ... });\n\n    const ztracy = b.dependency(\"ztracy\", .{\n        .enable_ztracy = options.enable_ztracy,\n        .enable_fibers = options.enable_fibers,\n        .on_demand = options.on_demand,\n    });\n    exe.root_module.addImport(\"ztracy\", ztracy.module(\"root\"));\n    exe.linkLibrary(ztracy.artifact(\"tracy\"));\n}\n```\n\nNow in your code you may import and use `ztracy`. To build your project with Tracy enabled run:\n\n`zig build -Denable_ztracy=true`\n\n```zig\nconst ztracy = @import(\"ztracy\");\n\npub fn main() !void {\n    {\n        const tracy_zone = ztracy.ZoneNC(@src(), \"Compute Magic\", 0x00_ff_00_00);\n        defer tracy_zone.End();\n        ...\n    }\n}\n```\n\n## Async \"Fibers\" support\n\nTracy has support for marking fibers (also called green threads,\ncoroutines, and other forms of cooperative multitasking). This support requires\nan additional option passed through when compiling the Tracy library, so:\n\n```zig\n    ...\n    const optimize = b.standardOptimizeOption(.{});\n    const target = b.standardTargetOptions(.{});\n\n    const ztracy_pkg = ztracy.package(b, target, optimize, .{\n        .options = .{ .enable_ztracy = true, .enable_fibers = true },\n    });\n\n    ztracy_pkg.link(exe);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzig-gamedev%2Fztracy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzig-gamedev%2Fztracy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzig-gamedev%2Fztracy/lists"}