Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ziglibs/repository
A community-maintained repository of zig packages
https://github.com/ziglibs/repository
zig
Last synced: 1 day ago
JSON representation
A community-maintained repository of zig packages
- Host: GitHub
- URL: https://github.com/ziglibs/repository
- Owner: ziglibs
- License: mit
- Created: 2020-10-03T11:20:40.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-20T19:57:49.000Z (6 months ago)
- Last Synced: 2024-08-01T19:58:36.402Z (3 months ago)
- Topics: zig
- Language: Zig
- Homepage:
- Size: 199 KB
- Stars: 101
- Watchers: 6
- Forks: 19
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-zig - repository🗒️A community-maintained repository of zig packages
README
# Zig Package Repository
This is one community-maintained repository of zig packages.
## Contributions
If you have an actively maintained package, feel free to create a PR that adds your package to the repository! If you feel like it, you're also free to add other peoples packages!### Adding new packages
The repo provides a convenience tool to create new packages. Just run `zig build add` to get a prompt for package informations. The tool will verify that the entered information is vaguely correct and follows the format rules, also checks if a package with that name already exists and if the tags are all valid.
### Verification
![Repository Validation](https://github.com/ziglibs/repository/workflows/Repository%20Validation/badge.svg?event=push)
This repository will use the CI to verify if all PRs keep the database consistent. If you want to locally test this before doing the PR, just call `zig build verify` in the root folder.
## Repository structure
The repository contains two major data sets: *packages* and *tags*.
*Tags* are just groups of packages, each package can have zero or more tags assigned. *Packages* are basically a link to *any* git repository paired with a root source file which is required for the package to be imported.
### `packages/`
A folder containing a single file per package. Each file is a json file following this structure:
```json
{
"author": "",
"description": "",
"git": "",
"root_file": "",
"tags": [
"", ""
]
}
```The fields have the following meaning:
- `author` is the name (or nickname) of the package author
- `description` is a short description of the package
- `git` is a path to the git repository where the package can be fetched
- `root_file` is an absolute path in unix style (path segments separated by `/`) to the root file of the package. This is what should be used for `std.build.Pkg.path`
- `tags` is an array of strings where each item is the name of a tag in the folder `tags/`. Tags are identified by their file name (without extension) and will group the packages### `tags/`
A folder containing a single file per tag. Each file is a json file following this structure:
```json
{
"description": ""
}
```The fields have the following meaning:
- `description` is a short description of what kind of packages can be found in this group.### `tools/`
This folder contains the sources of the verification tools and other nice things.