this repo has no description
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}