authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-30 03:40:25 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-30 03:40:25 -07:00
logbb7bbbfac7327dae81e6a4fac296e6609afa712b
treed0f92a95946e5ef7468c0d78288b3d8302997070
parent58a16988c07c79a81598ace7b11975a6b4243a30
signaturebadge-check Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

remove a bunch of zig-extras functions


9 files changed, 60 insertions(+), 50 deletions(-)

deps.zig+12-12
......@@ -58,7 +58,7 @@ pub fn fetch(exe: *std.Build.Step.Compile) *std.Build.Step {
5858 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/arqv-ini", "ab427a4de4f875eaa39ee56a29114fc020431546").step);
5959 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-ansi", "5f89211a749aef6bf518889c0467ceb24825c055").step);
6060 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-detect-license", "a1a066da88dab50873a56f0349dc12dc76542077").step);
61 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-extras", "b3457b31a1d1ea2c19c5d0b007c903d3e80add40").step);
61 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-extras", "0cf756c80a4bc1b0459bc81bf8071891f12c3738").step);
6262 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-git", "2b3f83cd341764f979969603e4f77e62f353b6a3").step);
6363 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-inquirer", "4cddefa42744d61067567b0b36b5d2bb376e5ae3").step);
6464 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-intrusive-parser", "a31b480914d15f3d13cdfb586aac950c73beebdd").step);
......@@ -66,13 +66,13 @@ pub fn fetch(exe: *std.Build.Step.Compile) *std.Build.Step {
6666 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-leven", "618eddde4ffbc6d34100e4bc6aa654d41161537a").step);
6767 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-licenses", "16cef5e32b3f8bbcf1064c599615290a720b6547").step);
6868 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-licenses-text", "ba0f00dfb23d28c301e4b54d0a278def2c38dc7b").step);
69 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-nfs", "c855473c8bd15dd24a4e8b6911b7e006062004ba").step);
69 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-nfs", "c61b820567505899198bb425c2b7c459a1f3cce2").step);
7070 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-nio", "c1da2e8a31858880eb3e4cfcf12de0a865617623").step);
71 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-sys-darwin", "3265d1f06418eb0360d753c12116310a14b97bde").step);
71 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-sys-darwin", "c8ef1a85dfb5e1891454650f88d56bfaa0834304").step);
7272 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-sys-linux", "f0b155d3627f8c19868be1b2f15d71cda908b575").step);
7373 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-time", "0f4db4c980146e4a3fc86a9a9070452a25ff9317").step);
7474 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-tracer", "3a5fdea4ffd387a53ac2a42fb503557cdbe20696").step);
75 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-yaml", "00e899bec815bc2b49c6e5a72a7cfeeda673e133").step);
75 step.dependOn(&GitExactStep.create(b, "https://github.com/nektro/zig-yaml", "1dbb8eec4059e6b49e9a590300355f8090c681c7").step);
7676 step.dependOn(&GitExactStep.create(b, "https://github.com/madler/zlib", "da607da739fa6047df13e66a2af6b8bec7c2a498").step);
7777 step.dependOn(&GitExactStep.create(b, "https://github.com/yaml/libyaml", "2c891fc7a770e8ba2fec34fc6b545c672beb37e6").step);
7878 step.dependOn(&GitExactStep.create(b, "https://github.com/ziglibs/known-folders", "aa24df42183ad415d10bc0a33e6238c437fc0f59").step);
......@@ -202,9 +202,9 @@ pub const package_data = struct {
202202 .entry = "/git/github.com/nektro/zig-ansi/5f89211a749aef6bf518889c0467ceb24825c055/src/lib.zig",
203203 };
204204 pub var _f7dubzb7cyqe = Package{
205 .store = "/git/github.com/nektro/zig-extras/b3457b31a1d1ea2c19c5d0b007c903d3e80add40",
205 .store = "/git/github.com/nektro/zig-extras/0cf756c80a4bc1b0459bc81bf8071891f12c3738",
206206 .name = "extras",
207 .entry = "/git/github.com/nektro/zig-extras/b3457b31a1d1ea2c19c5d0b007c903d3e80add40/src/lib.zig",
207 .entry = "/git/github.com/nektro/zig-extras/0cf756c80a4bc1b0459bc81bf8071891f12c3738/src/lib.zig",
208208 };
209209 pub var _c1xirp1ota5p = Package{
210210 .store = "/git/github.com/nektro/zig-inquirer/4cddefa42744d61067567b0b36b5d2bb376e5ae3",
......@@ -223,9 +223,9 @@ pub const package_data = struct {
223223 .entry = "/git/github.com/nektro/zig-licenses/16cef5e32b3f8bbcf1064c599615290a720b6547/src/lib.zig",
224224 };
225225 pub var _73bukkeci2u6 = Package{
226 .store = "/git/github.com/nektro/zig-sys-darwin/3265d1f06418eb0360d753c12116310a14b97bde",
226 .store = "/git/github.com/nektro/zig-sys-darwin/c8ef1a85dfb5e1891454650f88d56bfaa0834304",
227227 .name = "sys-darwin",
228 .entry = "/git/github.com/nektro/zig-sys-darwin/3265d1f06418eb0360d753c12116310a14b97bde/sys_darwin.zig",
228 .entry = "/git/github.com/nektro/zig-sys-darwin/c8ef1a85dfb5e1891454650f88d56bfaa0834304/sys_darwin.zig",
229229 };
230230 pub var _h7tv7ayhffak = Package{
231231 .store = "/git/github.com/nektro/zig-sys-linux/f0b155d3627f8c19868be1b2f15d71cda908b575",
......@@ -253,9 +253,9 @@ pub const package_data = struct {
253253 .deps = &[_]*Package{ &_f7dubzb7cyqe, &_h7tv7ayhffak, &_73bukkeci2u6 },
254254 };
255255 pub var _vph9l0hxpeze = Package{
256 .store = "/git/github.com/nektro/zig-nfs/c855473c8bd15dd24a4e8b6911b7e006062004ba",
256 .store = "/git/github.com/nektro/zig-nfs/c61b820567505899198bb425c2b7c459a1f3cce2",
257257 .name = "nfs",
258 .entry = "/git/github.com/nektro/zig-nfs/c855473c8bd15dd24a4e8b6911b7e006062004ba/nfs.zig",
258 .entry = "/git/github.com/nektro/zig-nfs/c61b820567505899198bb425c2b7c459a1f3cce2/nfs.zig",
259259 .deps = &[_]*Package{ &_h7tv7ayhffak, &_kscsl0145t7x, &_iecwp4b3bsfm, &_73bukkeci2u6 },
260260 };
261261 pub var _ede2wygpe1iy = Package{
......@@ -289,9 +289,9 @@ pub const package_data = struct {
289289 .deps = &[_]*Package{ &_pt88y5d80m25, &_96h80ezrvj7i },
290290 };
291291 pub var _g982zq6e8wsv = Package{
292 .store = "/git/github.com/nektro/zig-yaml/00e899bec815bc2b49c6e5a72a7cfeeda673e133",
292 .store = "/git/github.com/nektro/zig-yaml/1dbb8eec4059e6b49e9a590300355f8090c681c7",
293293 .name = "yaml",
294 .entry = "/git/github.com/nektro/zig-yaml/00e899bec815bc2b49c6e5a72a7cfeeda673e133/yaml.zig",
294 .entry = "/git/github.com/nektro/zig-yaml/1dbb8eec4059e6b49e9a590300355f8090c681c7/yaml.zig",
295295 .deps = &[_]*Package{ &_8mdbh0zuneb0 },
296296 };
297297 pub var _0e2d06bb494b = Package{
src/cmd/fetch.zig+1-1
......@@ -206,7 +206,7 @@ const DiffChange = struct {
206206fn diff_lockfile(alloc: std.mem.Allocator) !void {
207207 const max = std.math.maxInt(usize);
208208
209 if (try extras.doesFolderExist(null, ".git")) {
209 if (try nfs.cwd().existsDir(".git")) {
210210 const result = try u.run_cmd_raw(alloc, null, &.{ "git", "diff", "zigmod.lock" });
211211 var stdout = std.io.fixedBufferStream(result.stdout);
212212 const r = stdout.reader();
src/cmd/init.zig+12-11
......@@ -39,7 +39,7 @@ pub fn execute(self_name: []const u8, args: [][:0]u8) !void {
3939 const flatname = try gpa.dupe(u8, name);
4040 _ = std.mem.replaceScalar(u8, flatname, '-', '_');
4141
42 const entry_bare = if (ptype == .lib) try inquirer.forString(stdout, stdin, "package entry point:", gpa, u.detct_mainfile(gpa, u.try_index(string, args, 1, ""), .cwd(), name) catch |err| switch (err) {
42 const entry_bare = if (ptype == .lib) try inquirer.forString(stdout, stdin, "package entry point:", gpa, u.detct_mainfile(gpa, u.try_index([:0]const u8, args, 1, ""), .cwd(), name) catch |err| switch (err) {
4343 error.CantFindMain => try std.mem.concat(gpa, u8, &.{ flatname, ".zig" }),
4444 else => |ee| return ee,
4545 }) else null;
......@@ -138,10 +138,10 @@ pub fn execute(self_name: []const u8, args: [][:0]u8) !void {
138138 }
139139
140140 // ask about .gitignore
141 if (try extras.doesFolderExist(null, ".git")) {
141 if (try nfs.cwd().existsDir(".git")) {
142142 const do = try inquirer.forConfirm(stdout, stdin, "It appears you're using git. Do you want init to add Zigmod to your .gitignore?", gpa);
143143 if (do) {
144 const exists = try extras.doesFileExist(null, ".gitignore");
144 const exists = try nfs.cwd().exists(".gitignore");
145145 const file: nfs.File = try (if (exists) cwd.openFile(".gitignore", .{ .mode = .read_write }) else cwd.createFile(".gitignore", .{}));
146146 defer file.close();
147147 const len = try file.getEndPos();
......@@ -160,10 +160,10 @@ pub fn execute(self_name: []const u8, args: [][:0]u8) !void {
160160 }
161161
162162 // ask about .gitattributes
163 if (try extras.doesFolderExist(null, ".git")) {
163 if (try nfs.cwd().existsDir(".git")) {
164164 const do = try inquirer.forConfirm(stdout, stdin, "It appears you're using git. Do you want init to add Zigmod to your .gitattributes?", gpa);
165165 if (do) {
166 const exists = try extras.doesFileExist(null, ".gitattributes");
166 const exists = try nfs.cwd().exists(".gitattributes");
167167 const file: nfs.File = try (if (exists) cwd.openFile(".gitattributes", .{ .mode = .read_write }) else cwd.createFile(".gitattributes", .{}));
168168 defer file.close();
169169 const len = try file.getEndPos();
......@@ -179,7 +179,7 @@ pub fn execute(self_name: []const u8, args: [][:0]u8) !void {
179179 }
180180
181181 // ask about build.zig
182 if (!try extras.doesFileExist(null, "build.zig")) {
182 if (!try nfs.cwd().exists("build.zig")) {
183183 const do = try inquirer.forConfirm(stdout, stdin, "It looks like there's no build.zig. Do you want Zigmod to generate one for you?", gpa);
184184 if (do) {
185185 const file = try cwd.createFile("build.zig", .{});
......@@ -246,7 +246,7 @@ pub fn execute(self_name: []const u8, args: [][:0]u8) !void {
246246 }
247247
248248 // ask about main.zig / mod.zig
249 if (!try extras.doesFileExist(null, entry orelse "main.zig")) {
249 if (!try nfs.cwd().exists(entry orelse "main.zig")) {
250250 const do = try inquirer.forConfirm(stdout, stdin, "It looks like your entry point doesn't exist. Do you want Zigmod to generate it for you?", gpa);
251251 if (do) {
252252 const file = try cwd.createFile(entry orelse "main.zig", .{});
......@@ -280,7 +280,7 @@ pub fn execute(self_name: []const u8, args: [][:0]u8) !void {
280280 }
281281
282282 // ask about test.zig
283 if (!try extras.doesFileExist(null, "test.zig")) {
283 if (!try nfs.cwd().exists("test.zig")) {
284284 const do = try inquirer.forConfirm(stdout, stdin, "It looks like there's no test.zig. Do you want Zigmod to generate it for you?", gpa);
285285 if (do) {
286286 const file = try cwd.createFile("test.zig", .{});
......@@ -342,10 +342,11 @@ pub fn writeLibManifest(w: nfs.File, id: string, name: string, license: string,
342342}
343343
344344fn guessCopyrightName() !?string {
345 const home = (try knownfolders.open(gpa, .home, .{})).?;
346 if (!(try extras.doesFileExist(home, ".gitconfig"))) return null;
345 const homepath = (try knownfolders.getPath(gpa, .home)).?;
346 const home = try nfs.cwd().openDirC(homepath, .{});
347 if (!(try home.exists(".gitconfig"))) return null;
347348 const file = try home.openFile(".gitconfig", .{});
348 const content = try file.reader().readAllAlloc(gpa, 1024 * 1024);
349 const content = try file.readAllAlloc(gpa, 1024 * 1024);
349350 var iniO = try ini.parseIntoMap(content, gpa);
350351 return iniO.map.get("user.name");
351352}
src/cmd/install.zig+1-1
......@@ -53,7 +53,7 @@ pub fn execute(self_name: []const u8, args: [][:0]u8) !void {
5353 const modpath = try std.fs.path.joinZ(gpa, &.{ cachepath, clean_path });
5454 std.log.debug("modpath: {s}", .{modpath});
5555
56 if (!try extras.doesFolderExist(null, modpath)) {
56 if (!try nfs.cwd().existsDir(modpath)) {
5757 try dep.type.pull(gpa, dep.path, modpath);
5858 } else {
5959 try dep.type.update(gpa, modpath, "");
src/common.zig+8-8
......@@ -138,7 +138,7 @@ pub fn get_modpath(cachepath: string, d: zigmod.Dep, options: *CollectOptions) !
138138 u.fail("fetch: git: version type '{s}' is invalid.", .{vtype});
139139 },
140140 };
141 if (try extras.doesFolderExist(null, pv)) {
141 if (try nfs.cwd().existsDir(pv)) {
142142 if (vers.id == .branch) {
143143 if (options.update) {
144144 try d.type.update(options.alloc, pv, d.path);
......@@ -160,7 +160,7 @@ pub fn get_modpath(cachepath: string, d: zigmod.Dep, options: *CollectOptions) !
160160 try setTreeReadOnly(pvd, options.alloc);
161161 return pv;
162162 }
163 if (!try extras.doesFolderExist(null, p)) {
163 if (!try nfs.cwd().existsDir(p)) {
164164 try d.type.pull(options.alloc, d.path, p);
165165 } else {
166166 if (options.update) {
......@@ -170,7 +170,7 @@ pub fn get_modpath(cachepath: string, d: zigmod.Dep, options: *CollectOptions) !
170170 return p;
171171 },
172172 .hg => {
173 if (!try extras.doesFolderExist(null, p)) {
173 if (!try nfs.cwd().existsDir(p)) {
174174 try d.type.pull(options.alloc, d.path, p);
175175 } else {
176176 if (options.update) {
......@@ -180,12 +180,12 @@ pub fn get_modpath(cachepath: string, d: zigmod.Dep, options: *CollectOptions) !
180180 return p;
181181 },
182182 .http => {
183 if (try extras.doesFolderExist(null, pv)) {
183 if (try nfs.cwd().existsDir(pv)) {
184184 return pv;
185185 }
186186 const file_name = u.last(try u.split(options.alloc, d.path, '/')).?;
187187 if (d.version.len > 0) {
188 if (try extras.doesFolderExist(null, pv)) {
188 if (try nfs.cwd().existsDir(pv)) {
189189 return pv;
190190 }
191191 const file_path = try std.fs.path.joinZ(options.alloc, &.{ pv, file_name });
......@@ -201,7 +201,7 @@ pub fn get_modpath(cachepath: string, d: zigmod.Dep, options: *CollectOptions) !
201201 u.fail("{s} does not match hash {s}", .{ d.path, d.version });
202202 return p;
203203 }
204 if (try extras.doesFolderExist(null, p)) {
204 if (try nfs.cwd().existsDir(p)) {
205205 try nfs.cwd().deleteTree(p);
206206 }
207207 const file_path_s = try std.fs.path.resolve(options.alloc, &.{ p, file_name });
......@@ -263,7 +263,7 @@ pub fn get_module_from_dep(d: *zigmod.Dep, cachepath: [:0]const u8, options: *Co
263263 }
264264 const moddirO = try nfs.cwd().openDir(modpath, .{});
265265 const tryname = try u.detect_pkgname(options.alloc, d.name, modpath);
266 const trymain: ?string = u.detct_mainfile(options.alloc, d.main, moddirO, tryname) catch |err| switch (err) {
266 const trymain = u.detct_mainfile(options.alloc, d.main, moddirO, tryname) catch |err| switch (err) {
267267 error.CantFindMain => null,
268268 else => |ee| return ee,
269269 };
......@@ -335,7 +335,7 @@ pub fn gen_files_package(alloc: std.mem.Allocator, cachepath: string, mdir: nfs.
335335pub fn parse_lockfile(alloc: std.mem.Allocator, dir: nfs.Dir) ![]const [4]string {
336336 var list = std.ArrayList([4]string).init(alloc);
337337 const max = std.math.maxInt(usize);
338 if (!try extras.doesFileExist(dir.to_std(), "zigmod.lock")) return &[_][4]string{};
338 if (!try dir.exists("zigmod.lock")) return &[_][4]string{};
339339 var f = try dir.openFile("zigmod.lock", .{});
340340 defer f.close();
341341 var r = nio.BufferedReader(4096, nfs.File).init(f);
src/util/dep.zig+1-1
......@@ -17,7 +17,7 @@ pub const Dep = struct {
1717 path: [:0]const u8,
1818 id: [48]u8,
1919 name: string,
20 main: string,
20 main: [:0]const u8,
2121 version: string,
2222 c_include_dirs: []const string = &.{},
2323 c_source_flags: []const string = &.{},
src/util/funcs.zig+19-10
......@@ -44,10 +44,19 @@ pub fn split(alloc: std.mem.Allocator, in: string, delim: u8) ![]string {
4444 return list.toOwnedSlice();
4545}
4646
47pub fn file_list(alloc: std.mem.Allocator, dpath: [:0]const u8) ![]const string {
47pub fn file_list(alloc: std.mem.Allocator, dpath: [:0]const u8) ![][:0]u8 {
4848 var dir = try nfs.cwd().openDir(dpath, .{});
4949 defer dir.close();
50 return try extras.fileList(alloc, dir.to_std());
50 var list = std.ArrayList([:0]u8).init(alloc);
51 errdefer list.deinit();
52 errdefer for (list.items) |x| alloc.free(x);
53 var walker = try dir.walk(alloc);
54 defer walker.deinit();
55 while (try walker.next()) |entry| {
56 if (entry.type != .REG) continue;
57 try list.append(try alloc.dupeZ(u8, entry.path));
58 }
59 return list.toOwnedSlice();
5160}
5261
5362pub fn run_cmd_raw(alloc: std.mem.Allocator, dir: ?string, args: []const string) !std.process.Child.RunResult {
......@@ -168,28 +177,28 @@ pub fn detect_pkgname(alloc: std.mem.Allocator, override: string, dir: [:0]const
168177 return name;
169178}
170179
171pub fn detct_mainfile(alloc: std.mem.Allocator, override: string, dir: nfs.Dir, name: string) !string {
180pub fn detct_mainfile(alloc: std.mem.Allocator, override: [:0]const u8, dir: nfs.Dir, name: string) ![:0]const u8 {
172181 if (override.len > 0) {
173 if (try extras.doesFileExist(dir.to_std(), override)) {
182 if (try dir.exists(override)) {
174183 if (std.mem.endsWith(u8, override, ".zig")) {
175184 return override;
176185 }
177186 }
178187 }
179 const namedotzig = try std.mem.concat(alloc, u8, &.{ name, ".zig" });
180 if (try extras.doesFileExist(dir.to_std(), namedotzig)) {
188 const namedotzig = try std.mem.concatWithSentinel(alloc, u8, &.{ name, ".zig" }, 0);
189 if (try dir.exists(namedotzig)) {
181190 return namedotzig;
182191 }
183 if (try extras.doesFileExist(dir.to_std(), "lib.zig")) {
192 if (try dir.exists("lib.zig")) {
184193 return "lib.zig";
185194 }
186 if (try extras.doesFileExist(dir.to_std(), "main.zig")) {
195 if (try dir.exists("main.zig")) {
187196 return "main.zig";
188197 }
189 if (try extras.doesFileExist(dir.to_std(), try std.fs.path.join(alloc, &.{ "src", "lib.zig" }))) {
198 if (try dir.exists(try std.fs.path.joinZ(alloc, &.{ "src", "lib.zig" }))) {
190199 return "src/lib.zig";
191200 }
192 if (try extras.doesFileExist(dir.to_std(), try std.fs.path.join(alloc, &.{ "src", "main.zig" }))) {
201 if (try dir.exists(try std.fs.path.joinZ(alloc, &.{ "src", "main.zig" }))) {
193202 return "src/main.zig";
194203 }
195204 return error.CantFindMain;
src/util/modfile.zig+2-2
......@@ -104,7 +104,7 @@ pub const ModFile = struct {
104104 for (dep_seq.sequence) |item| {
105105 var dtype: string = undefined;
106106 var path: [:0]const u8 = undefined;
107 var version: ?string = null;
107 var version: ?[:0]const u8 = null;
108108 var main = item.mapping.get_string("main") orelse "";
109109
110110 if (item.mapping.get("src")) |val| {
......@@ -112,7 +112,7 @@ pub const ModFile = struct {
112112 dtype = src_iter.next().?;
113113 path = try gpa.dupeZ(u8, src_iter.next().?);
114114 if (src_iter.next()) |dver| {
115 version = dver;
115 version = try gpa.dupeZ(u8, dver);
116116 }
117117 } else {
118118 dtype = item.mapping.get("type").?.string;
zigmod.lock+4-4
......@@ -3,7 +3,7 @@ git https://github.com/marlersoft/zigwin32 commit-ec98bb4d9eea532320a8551720a9e3
33git https://github.com/nektro/arqv-ini commit-ab427a4de4f875eaa39ee56a29114fc020431546
44git https://github.com/nektro/zig-ansi commit-5f89211a749aef6bf518889c0467ceb24825c055
55git https://github.com/nektro/zig-detect-license commit-a1a066da88dab50873a56f0349dc12dc76542077
6git https://github.com/nektro/zig-extras commit-b3457b31a1d1ea2c19c5d0b007c903d3e80add40
6git https://github.com/nektro/zig-extras commit-0cf756c80a4bc1b0459bc81bf8071891f12c3738
77git https://github.com/nektro/zig-git commit-2b3f83cd341764f979969603e4f77e62f353b6a3
88git https://github.com/nektro/zig-inquirer commit-4cddefa42744d61067567b0b36b5d2bb376e5ae3
99git https://github.com/nektro/zig-intrusive-parser commit-a31b480914d15f3d13cdfb586aac950c73beebdd
......@@ -11,13 +11,13 @@ git https://github.com/nektro/zig-json commit-428aa8a29e370fdb2e6739d5676b1de415
1111git https://github.com/nektro/zig-leven commit-618eddde4ffbc6d34100e4bc6aa654d41161537a
1212git https://github.com/nektro/zig-licenses commit-16cef5e32b3f8bbcf1064c599615290a720b6547
1313git https://github.com/nektro/zig-licenses-text commit-ba0f00dfb23d28c301e4b54d0a278def2c38dc7b
14git https://github.com/nektro/zig-nfs commit-c855473c8bd15dd24a4e8b6911b7e006062004ba
14git https://github.com/nektro/zig-nfs commit-c61b820567505899198bb425c2b7c459a1f3cce2
1515git https://github.com/nektro/zig-nio commit-c1da2e8a31858880eb3e4cfcf12de0a865617623
16git https://github.com/nektro/zig-sys-darwin commit-3265d1f06418eb0360d753c12116310a14b97bde
16git https://github.com/nektro/zig-sys-darwin commit-c8ef1a85dfb5e1891454650f88d56bfaa0834304
1717git https://github.com/nektro/zig-sys-linux commit-f0b155d3627f8c19868be1b2f15d71cda908b575
1818git https://github.com/nektro/zig-time commit-0f4db4c980146e4a3fc86a9a9070452a25ff9317
1919git https://github.com/nektro/zig-tracer commit-3a5fdea4ffd387a53ac2a42fb503557cdbe20696
20git https://github.com/nektro/zig-yaml commit-00e899bec815bc2b49c6e5a72a7cfeeda673e133
20git https://github.com/nektro/zig-yaml commit-1dbb8eec4059e6b49e9a590300355f8090c681c7
2121git https://github.com/madler/zlib tag-v1.3.2
2222git https://github.com/yaml/libyaml tag-0.2.5
2323git https://github.com/ziglibs/known-folders commit-aa24df42183ad415d10bc0a33e6238c437fc0f59