{"id":19588891,"url":"https://github.com/tree-sitter/zig-tree-sitter","last_synced_at":"2026-04-20T00:15:07.259Z","repository":{"id":262136909,"uuid":"886001615","full_name":"tree-sitter/zig-tree-sitter","owner":"tree-sitter","description":"Zig bindings to the Tree-sitter parsing library ","archived":false,"fork":false,"pushed_at":"2024-11-10T18:19:18.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-11-10T19:26:49.946Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://tree-sitter.github.io/zig-tree-sitter/","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/tree-sitter.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-09T23:28:18.000Z","updated_at":"2024-11-10T18:19:21.000Z","dependencies_parsed_at":"2024-11-10T19:36:56.606Z","dependency_job_id":null,"html_url":"https://github.com/tree-sitter/zig-tree-sitter","commit_stats":null,"previous_names":["tree-sitter/zig-tree-sitter"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tree-sitter%2Fzig-tree-sitter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tree-sitter%2Fzig-tree-sitter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tree-sitter%2Fzig-tree-sitter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tree-sitter%2Fzig-tree-sitter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tree-sitter","download_url":"https://codeload.github.com/tree-sitter/zig-tree-sitter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224069367,"owners_count":17250456,"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":[],"created_at":"2024-11-11T08:16:27.139Z","updated_at":"2026-04-20T00:15:07.252Z","avatar_url":"https://github.com/tree-sitter.png","language":"Zig","funding_links":[],"categories":["Language Essentials"],"sub_categories":["Parser Library"],"readme":"# Zig Tree-sitter\n\n[![CI][ci]](https://github.com/tree-sitter/zig-tree-sitter/actions/workflows/ci.yml)\n[![docs][docs]](https://tree-sitter.github.io/zig-tree-sitter/)\n\nZig bindings to the [tree-sitter] parsing library. Needs zig 0.16.\n\n## Usage\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ccode\u003ebuild.zig\u003c/code\u003e\u003c/summary\u003e\n\n```zig\nconst std = @import(\"std\");\n\npub fn build(b: *std.Build) void {\n    const target = b.standardTargetOptions(.{});\n    const optimize = b.standardOptimizeOption(.{});\n\n    const exe = b.addExecutable(.{\n        .name = \"zig-tree-sitter-usage\",\n        .root_source_file = b.path(\"src/main.zig\"),\n        .target = target,\n        .optimize = optimize,\n    });\n    b.installArtifact(exe);\n\n    const tree_sitter = b.dependency(\"tree_sitter\", .{\n        .target = target,\n        .optimize = optimize,\n    });\n    exe.root_module.addImport(\"tree-sitter\", tree_sitter.module(\"tree_sitter\"));\n\n    const tree_sitter_zig = b.dependency(\"tree_sitter_zig\", .{\n        .target = target,\n        .optimize = optimize,\n    });\n    exe.root_module.linkLibrary(tree_sitter_zig.artifact(\"tree-sitter-zig\"));\n\n    const run_cmd = b.addRunArtifact(exe);\n    run_cmd.step.dependOn(b.getInstallStep());\n    const run_step = b.step(\"run\", \"Run the example\");\n    run_step.dependOn(\u0026run_cmd.step);\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails open\u003e\n\u003csummary\u003e\u003ccode\u003esrc/main.zig\u003c/code\u003e\u003c/summary\u003e\n\n```zig\nconst std = @import(\"std\");\nconst ts = @import(\"tree-sitter\");\n\nextern fn tree_sitter_zig() callconv(.c) *ts.Language;\n\npub fn main() !void {\n    // Create a parser for the zig language\n    const language = tree_sitter_zig();\n    defer language.destroy();\n\n    const parser = ts.Parser.create();\n    defer parser.destroy();\n    try parser.setLanguage(language);\n\n    // Parse some source code and get the root node\n    const tree = parser.parseString(\"pub fn main() !void {}\", null);\n    defer tree.?.destroy();\n\n    const node = tree.?.rootNode();\n    std.debug.assert(std.mem.eql(u8, node.kind(), \"source_file\"));\n    std.debug.assert(node.endPoint().cmp(.{ .row = 0, .column = 22 }) == .eq);\n\n    // Create a query and execute it\n    var error_offset: u32 = 0;\n    const query = try ts.Query.create(language, \"name: (identifier) @name\", \u0026error_offset);\n    defer query.destroy();\n\n    const cursor = ts.QueryCursor.create();\n    defer cursor.destroy();\n    cursor.exec(query, node);\n\n    // Get the captured node of the first match\n    const match = cursor.nextMatch().?;\n    const capture = match.captures[0].node;\n    std.debug.assert(std.mem.eql(u8, capture.kind(), \"identifier\"));\n}\n```\n\n\u003c/details\u003e\n\n[tree-sitter]: https://tree-sitter.github.io/tree-sitter/\n[ci]: https://img.shields.io/github/actions/workflow/status/tree-sitter/zig-tree-sitter/ci.yml?logo=github\u0026label=CI\n[docs]: https://img.shields.io/github/deployments/tree-sitter/zig-tree-sitter/github-pages?logo=zig\u0026label=API%20Docs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftree-sitter%2Fzig-tree-sitter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftree-sitter%2Fzig-tree-sitter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftree-sitter%2Fzig-tree-sitter/lists"}