this repo has no description
at main 114 lines 4.0 kB view raw
1const std = @import("std"); 2 3pub fn build(b: *std.Build) void { 4 const target = b.standardTargetOptions(.{}); 5 const optimize = b.standardOptimizeOption(.{}); 6 7 const zat_dep = b.dependency("zat", .{ 8 .target = target, 9 .optimize = optimize, 10 }); 11 const zat_mod = zat_dep.module("zat"); 12 13 // get websocket from zat's transitive dependencies (for capture tool) 14 const ws_mod = zat_dep.builder.dependency("websocket", .{ 15 .target = target, 16 .optimize = optimize, 17 }).module("websocket"); 18 19 // fixture capture tool — needs websocket for raw frame access 20 const capture = b.addExecutable(.{ 21 .name = "capture-fixtures", 22 .root_module = b.createModule(.{ 23 .root_source_file = b.path("src/capture.zig"), 24 .target = target, 25 .optimize = optimize, 26 .imports = &.{ 27 .{ .name = "zat", .module = zat_mod }, 28 .{ .name = "websocket", .module = ws_mod }, 29 }, 30 }), 31 }); 32 b.installArtifact(capture); 33 34 const run_capture = b.addRunArtifact(capture); 35 const capture_step = b.step("run-capture", "capture fixtures from live network"); 36 capture_step.dependOn(&run_capture.step); 37 38 // benchmark 39 const bench = b.addExecutable(.{ 40 .name = "bench", 41 .root_module = b.createModule(.{ 42 .root_source_file = b.path("src/bench.zig"), 43 .target = target, 44 .optimize = optimize, 45 .imports = &.{.{ .name = "zat", .module = zat_mod }}, 46 }), 47 }); 48 b.installArtifact(bench); 49 50 const run_bench = b.addRunArtifact(bench); 51 const bench_step = b.step("run-bench", "run benchmarks"); 52 bench_step.dependOn(&run_bench.step); 53 54 // signature corpus capture tool — needs websocket + zat for DID resolution 55 const capture_sigs = b.addExecutable(.{ 56 .name = "capture-sigs", 57 .root_module = b.createModule(.{ 58 .root_source_file = b.path("src/capture_sigs.zig"), 59 .target = target, 60 .optimize = optimize, 61 .imports = &.{ 62 .{ .name = "zat", .module = zat_mod }, 63 .{ .name = "websocket", .module = ws_mod }, 64 }, 65 }), 66 }); 67 b.installArtifact(capture_sigs); 68 69 const run_capture_sigs = b.addRunArtifact(capture_sigs); 70 const capture_sigs_step = b.step("run-capture-sigs", "capture sig verify corpus from live network"); 71 capture_sigs_step.dependOn(&run_capture_sigs.step); 72 73 // verify — live trust chain demo with timing 74 const verify = b.addExecutable(.{ 75 .name = "verify", 76 .root_module = b.createModule(.{ 77 .root_source_file = b.path("src/verify.zig"), 78 .target = target, 79 .optimize = optimize, 80 .imports = &.{.{ .name = "zat", .module = zat_mod }}, 81 }), 82 }); 83 b.installArtifact(verify); 84 85 const run_verify = b.addRunArtifact(verify); 86 if (b.args) |a| run_verify.addArgs(a); 87 const verify_step = b.step("run-verify", "run full AT Protocol trust chain verification"); 88 verify_step.dependOn(&run_verify.step); 89 90 // k256 — optimized secp256k1 verification 91 const k256_mod = b.dependency("k256", .{ 92 .target = target, 93 .optimize = optimize, 94 }).module("k256"); 95 96 // signature verification benchmark 97 const bench_sigs = b.addExecutable(.{ 98 .name = "bench-sigs", 99 .root_module = b.createModule(.{ 100 .root_source_file = b.path("src/bench_sigs.zig"), 101 .target = target, 102 .optimize = optimize, 103 .imports = &.{ 104 .{ .name = "zat", .module = zat_mod }, 105 .{ .name = "k256", .module = k256_mod }, 106 }, 107 }), 108 }); 109 b.installArtifact(bench_sigs); 110 111 const run_bench_sigs = b.addRunArtifact(bench_sigs); 112 const bench_sigs_step = b.step("run-bench-sigs", "run sig verify benchmarks"); 113 bench_sigs_step.dependOn(&run_bench_sigs.step); 114}