Skip to main content

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.

Creating a Raiku package involves four artefacts — 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


From Scaffold to Published Package

Once your directory is scaffolded, follow these steps to validate, generate the index entry, and open a pull request.
1

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.
2

Validate the package

Run the validator against your package directory. Every check must pass — zero errors are required before you can publish.
raiku validate --dir ./my-package
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.
3

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.
raiku publish --dir ./my-package
The command output includes a ready-to-paste JSON object like:
{
    "name": "my-package",
    "version": "1.0.0",
    "language": "Python",
    "author": "Your Name",
    "description": "One sentence description.",
    "path": "UserSub/Python/my-package",
    "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
4

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.
5

Verify the index is consistent

Confirm every entry in the index resolves to a valid path and hash:
raiku index --check --root .
All entries should be reported as valid.
6

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 validate and a brief description
See the Contributing guide for the full PR workflow and review process.

Real-World raiku.toml Examples

Python — fast-math

name = "fast-math"
version = "1.0.0"
language = "Python"
author = "Ada Lovelace"
description = "High-performance math utilities for numerical computing."
license = "MIT"
homepage = "https://github.com/SGizek/Raiku"
build_command = "pip install -e ."
dependencies = []

Rust — blazing-vec

name = "blazing-vec"
version = "1.0.0"
language = "Rust"
author = "Graydon Hoare"
description = "Zero-cost SIMD vector operations for Rust."
license = "MIT"
homepage = "https://github.com/SGizek/Raiku"
build_command = "cargo build --release"
dependencies = []

Example version.yml

version: "1.0.0"
release_date: "2026-07-03"
stability_level: stable
changelog:
  - "Initial release"
  - "Fast integer and floating-point operations"
  - "Vectorised dot product and cross product helpers"
The version field in version.yml must exactly match the version field in raiku.toml. A mismatch is a hard validation error that blocks publishing.

Declaring Dependencies

If your package requires another Raiku package to be installed first, list it in raiku.toml:
dependencies = ["fast-math", "other-pkg"]
Raiku automatically resolves transitive dependencies and installs them in the correct order before the main package. Each entry must be a valid Raiku package name that exists in the index. Circular dependency chains are detected and rejected at validation time.

Tag Conventions

Tags power raiku search --tag <tag> filtering. Add relevant, descriptive tags in raiku.toml:
tags = ["math", "vectors", "linear-algebra"]
Follow these conventions to keep tags discoverable:
  • Use lowercase and hyphenated multi-word tags.
  • Prefer established category names over one-off labels.
Common recommended categories:
CategoryExamples
Algorithms & datamath, data-structures, collections, geometry
Systemsnetworking, concurrency, io, crypto
Language utilitiesstrings, 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
Recommended build command patterns by language:
LanguageRecommended build command
Pythonpip install -e .
Rustcargo build --release
Cgcc -O2 -o <out> src/<main>.c
C++cmake -S src -B build && cmake --build build
Zigzig build
Javajavac -d out src/**/*.java
C#dotnet build src/<proj>.csproj -c Release
Gogo build ./...
Build commands must be non-interactive, reproducible, and deterministic. Network access during the build is permitted but discouraged — prefer vendored dependencies where possible.

Build docs developers (and LLMs) love