Creating a Raiku package involves four artefacts —Documentation Index
Fetch the complete documentation index at: https://mintlify.com/SGizek/Raiku/llms.txt
Use this file to discover all available pages before exploring further.
raiku.toml, version.yml, README.md, and a non-empty src/ directory — plus an entry in the community index. The fastest path is the interactive raiku init wizard, which generates all required files with language-appropriate source templates in a single command. If you prefer full control over every field, you can create the files manually instead. Either way, you must pass raiku validate before the package can be published.
Two Approaches to Scaffolding
- Init Wizard (Recommended)
- Manual Creation
The Non-interactive with a specific language — name and language are supplied on the command line; remaining fields use sensible defaults:Fully automated — all defaults accepted, no prompts, output written to a custom directory:
raiku init wizard prompts you for every required field and generates a complete, valid package with language-appropriate source templates. It is the fastest and most error-proof way to start.Interactive mode — answer prompts for name, language, version, author, description, license, build command, and tags:What Gets Generated
After the wizard completes, your package directory contains:| File / Directory | Description |
|---|---|
raiku.toml | Manifest with all required fields pre-filled |
version.yml | Version manifest with today’s date and stable level |
README.md | Basic readme with install command and usage placeholder |
src/ | Language-specific source scaffold (see table below) |
Language-Specific src/ Content
| Language | Generated files in src/ |
|---|---|
| Python | <name>.py, pyproject.toml |
| Rust | lib.rs, Cargo.toml |
| C | <name>.c, <name>.h |
| C++ | <name>.hpp, <name>.cpp, CMakeLists.txt |
| Zig | <name>.zig, build.zig |
| Java | dev/raiku/<name>/<Name>.java |
| C# | <Name>.cs, <name>.csproj |
| Go | <name>.go, <name>_test.go, go.mod |
From Scaffold to Published Package
Once your directory is scaffolded, follow these steps to validate, generate the index entry, and open a pull request.Fill in your source code in src/
Replace placeholder source files with your actual implementation. Ensure the code is buildable using the
build_command you declared in raiku.toml.Validate the package
Run the validator against your package directory. Every check must pass — zero errors are required before you can publish.A successful run prints a green PASSED panel. If any checks fail, the output lists every error with the field name and reason. Fix all errors before continuing.
Generate the index entry and SHA-256
raiku publish re-runs validation, computes the SHA-256 hash of your raiku.toml, and prints the exact JSON block to add to the index along with contribution instructions.Add the index entry to index/index.json
Copy the JSON block printed by
raiku publish and paste it into the "packages" array in index/index.json. Keep the file valid JSON — broken JSON blocks all installs for every user.Verify the index is consistent
Confirm every entry in the index resolves to a valid path and hash:All entries should be reported as valid.
Open a pull request
Fork the repository, push your branch, and open a PR against
main:- Title:
add(<Language>): your-package-name v1.0.0 - Branch:
add/<language>/your-package-name - Body: include the output of
raiku validateand a brief description
Real-World raiku.toml Examples
Python — fast-math
Rust — blazing-vec
Example version.yml
Declaring Dependencies
If your package requires another Raiku package to be installed first, list it inraiku.toml:
Tag Conventions
Tags powerraiku search --tag <tag> filtering. Add relevant, descriptive tags in raiku.toml:
- Use lowercase and hyphenated multi-word tags.
- Prefer established category names over one-off labels.
| Category | Examples |
|---|---|
| Algorithms & data | math, data-structures, collections, geometry |
| Systems | networking, concurrency, io, crypto |
| Language utilities | strings, parsing, testing, utils |
Build Command Guidelines
Build commands are executed in a restricted subprocess environment with a 300-second hard timeout. The following patterns are absolutely forbidden and will cause
raiku validate to reject the package immediately:rm -rf, rmdir /s, del /f, format, :(){:|:&};:, dd if=, mkfs, wget http://, curl http://, > /dev/sd*, chmod 777, sudo rm, DROP TABLE, __import__, exec(, eval(, os.system, subprocess.call, subprocess.Popen| Language | Recommended build command |
|---|---|
| Python | pip install -e . |
| Rust | cargo build --release |
| C | gcc -O2 -o <out> src/<main>.c |
| C++ | cmake -S src -B build && cmake --build build |
| Zig | zig build |
| Java | javac -d out src/**/*.java |
| C# | dotnet build src/<proj>.csproj -c Release |
| Go | go build ./... |