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/prism
This 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.zig
git 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.