init
Some checks failed
CI / build (-Dbuild-tests -Dbuild-benchmarks, true, macos-latest, master) (push) Has been cancelled
CI / build (macos-latest, 0.13.0) (push) Has been cancelled
CI / build (ubuntu-latest, 0.13.0) (push) Has been cancelled
CI / build (windows-latest, 0.13.0) (push) Has been cancelled

This commit is contained in:
2025-02-04 00:04:54 -07:00
commit aa27cc803c
7 changed files with 845 additions and 0 deletions

42
readme.md Normal file
View File

@@ -0,0 +1,42 @@
# libuv
This is [`libuv`][libuv], packaged for [Zig](https://ziglang.org/).
## Status
In theory, the full intersection of platforms supported by libuv and platforms supported by Zig are supported build targets, but the less common targets are not tested.
Building the unit test executable for linux (and possibly other platforms) does not currently work because the unit test files directly `#include` some of the libuv source files (while also linking to `libuv.a`), and that causes duplicate symbol errors unless the linker command is assembled in a specific order. The zig build system does not enforce a specific order.
## Usage
First, update your `build.zig.zon`:
```sh
# Initialize a zig project if you haven't already
zig init
# replace <refname> with the version you want to use, e.g. 1.50.0
zig fetch --save git+https://github.com/allyourcodebase/libuv.git#<refname>
```
You can then import `libuv` in your `build.zig` with:
```zig
const libuv_dep = b.dependency("libuv", .{
.target = target,
.optimize = optimize,
});
your_exe.linkLibrary(libuv_dep.artifact("uv"));
```
## Dependencies
`libuv` only depends on core operating system libraries (and libc).
## Zig Version Support Matrix
| Refname | libuv Version | Zig `0.13` | Zig `0.14.0-dev` |
|-----------|----------------|------------|------------------|
| | `1.50.0` | ✅ | ✅ |
[libuv]: https://github.com/libuv