temporalz/README.md
2026-06-02 17:15:07 +06:00

101 lines
2.1 KiB
Markdown

# Temporalz
[![CI](https://github.com/nurulhudaapon/temporalz/actions/workflows/ci.yml/badge.svg)](https://github.com/nurulhudaapon/temporalz/actions/workflows/ci.yml)
A Zig library for working with temporal types based on the [Temporal Standard](https://tc39.es/proposal-temporal/).
Temporalz provides Zig bindings to the Rust-based [temporal_rs](https://github.com/boa-dev/temporal) library for handling dates, times, and durations with proper timezone support.
## Installation
#### Prerequisites
- Zig 0.17.0-dev.639+284ab0ad8
- Rust toolchain (only required if [prebuilt staticlibs](#prebuilt) are not available for your platform)
#### Add as a Dependency
```bash
zig fetch --save git+https://github.com/nurulhudaapon/temporalz.git
```
#### Use in build.zig
Add temporalz to your executable in `build.zig`:
```zig
const temporalz = b.dependency("temporalz", .{
.target = target,
.optimize = optimize,
});
const exe = b.addExecutable(.{...});
exe.root_module.addImport("temporalz", temporalz.module("temporalz"));
```
## Checklist ([Test262](https://github.com/tc39/test262/tree/main/test/built-ins/Temporal))
| Namespace | Test262 (todo) |
| --- | --- |
| Instant | 0/0 |
| Duration | 0/0 |
| PlainDate | 0/0 |
| PlainTime | 0/0 |
| PlainDateTime | 0/0 |
| PlainYearMonth | 0/0 |
| PlainMonthDay | 0/0 |
| ZonedDateTime | 0/0 |
## Prebuilt
Prebuilt libraries are included for the following platforms:
- `x86_64-macos`
- `aarch64-macos`
- `x86_64-linux-gnu`
- `aarch64-linux-gnu`
- `x86_64-windows-gnu`
- `aarch64-windows-gnu`
- `wasm32-freestanding`
- `wasm32-wasi`
- `x86_64-linux-musl`
- `aarch64-linux-musl`
- `aarch64-linux-android`
- `aarch64-ios`
For other platforms, the library will build from source; you need the Rust toolchain installed.
## Development
#### Clone the Repository
```bash
git clone https://github.com/nurulhudaapon/temporalz.git
cd temporalz
```
#### Build and Run
```bash
zig build run
# Node.js
zig build run -Dtarget=wasm32-freestanding
# wasmtime
zig build run -Dtarget=wasm32-wasi
```
#### Run Tests
```bash
zig build test
```
## License
MIT