Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 6 hours 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 (9 months ago)
- Default Branch: main
- Last Pushed: 2024-11-05T01:31:21.000Z (8 days ago)
- Last Synced: 2024-11-05T02:27:38.706Z (8 days ago)
- Topics: serialization-format, zig-package
- Language: Zig
- Homepage: https://ziggy-lang.io
- Size: 967 KB
- Stars: 294
- Watchers: 3
- Forks: 17
- 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 pease 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
```