https://github.com/kristoff-it/ziggy
A data serialization language for expressing clear API messages, config files, etc.
https://github.com/kristoff-it/ziggy
serialization-format zig-package
Last synced: 3 months ago
JSON representation
A data serialization language for expressing clear API messages, config files, etc.
- Host: GitHub
- URL: https://github.com/kristoff-it/ziggy
- Owner: kristoff-it
- License: mit
- Created: 2024-02-12T13:01:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-16T21:12:44.000Z (4 months ago)
- Last Synced: 2025-04-01T12:01:48.760Z (4 months ago)
- Topics: serialization-format, zig-package
- Language: Zig
- Homepage: https://ziggy-lang.io
- Size: 1.05 MB
- Stars: 381
- Watchers: 6
- Forks: 21
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ziggy
A data serialization language for expressing clear API messages, config files, etc.## Status
Alpha, using Ziggy now means participating in its development.## At a glance
```zig
.id = @uuid("..."),
.time = 1710085168,
.payload = Command {
.do = @action("clear_chat"),
.sender = "kristoff-it",
.roles = ["admin", "mod"],
.extra = {
"agent": "Mozilla/5.0",
"os": "Linux/x64",
},
}
```
## Value Types
Ziggy values can be of the following types:- Bytes `"🧑🚀"`, `"\x1B[?1000h gang"`, `\\multiline`
- Numbers `123_000`, `1.23`, `0xff_ff_ff`, `0o7_5_5`, `0b01_01_01`
- Null `null`
- Bool `true`, `false`
- Custom Literals `@date("2020-12-01")`, `@v("1.0.0")`, `@foo("bar")`
- Array `[1, 2, 3]`
- Struct `{ .fixed = "schema" }`, `Named { .for = "unions of structs" }`
- Map `{ "custom": "keys" }`## Documentation
See the official website: https://ziggy-lang.io
## Development
In order to build with nix using the correct dependencies please keep
updated the [deps.nix](./deps.nix) file every time the [build.zig.zon](build.zig.zon)
is changed. In order to do so use```bash
nix run .#update-deps
```