Prism is a utility library for managing colors and colorspaces written in Zig.
Prism is a lightweight and performant piece of software powered by math. Zig's comptime optimizations coupled with static typing allows for a huge performance gain compared to other languages like C++, C#, Java, etc.
Prism requires zig 0.14.0-dev.2577+271452d22 to compile.
First, fetch the library into your project using:
$ zig fetch --save https://github.com/nitrogenez/prismThis will fetch the latest commit from the master branch. Next, you should add the following to your build.zig:
const prism = b.dependency("prism", .{});
my_mod.addImport("prism", prism.module("prism"));All the files must be formatted and linted with zig fmt. The code must be
consistent and clean. If needed, use // zig fmt: off and // zig fmt: on.
If you are willing to make Prism better (or worse), you may follow the instructions:
- Fork Prism
- Create a new branch using git, e.g
git checkout -b feat/myfeat - Write your dream code
- Add your changes and make a commit:
git add src/my_cool_change.ziggit commit -m "me code"
- Open a merge request
- Wait for any contributor to review your code
- Go get some tea, because the review may take a while
- Make changes if requested by a reviewer as described previousely
- You're GTG, enjoy your profile pic in a contributors list :)
| NAME | STATE |
|---|---|
| CMYK | FULL |
| HSI | FULL |
| HSL | FULL |
| LAB | FULL |
| YIQ | FULL |
| HSV | FULL |
| RGB | FULL |
| XYZ | FULL |
| LUV | FULL |
- NAME - Name of the colorspace
- STATE - Colorspace support state
- FULL - A full-featured colorspace support (conversion to and from RGB or anything else)
- PARTIAL - It kinda works, but is lacking functionality (only data type / acknowledged)
- NO - No support at all
- TODO - Planned and is yet to be implemented
Prism is licensed under a 3-clause BSD ("New" or "Revised") License. See LICENSE to learn more.