Raiku is a fully community-driven package ecosystem — every package in the index was contributed by someone following the workflow on this page. Contributing means forking the repository, scaffolding your package underDocumentation 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.
UserSub/<Language>/, passing all automated checks, and opening a pull request with a correctly formatted title. The process is designed to be straightforward: the CLI tools handle schema validation, hash computation, and index verification so you can focus on writing great packages.
Before You Start
Read the Rules
rules.md in full before writing a single line. CI and reviewers enforce every rule strictly — packages that violate them are rejected.Install the CLI
raiku validate and raiku publish:Sync the Index
raiku validate:Full PR Workflow
Fork the repository
Create your package
raiku init to scaffold the package inside the correct language directory, or create the files manually.With the init wizard (recommended):<Language> with one of: Python, Rust, C, CPP, Zig, Java, CSharp, Go.Write your source code
src/ with your actual implementation. Replace any placeholder content generated by raiku init. Ensure the code builds correctly using the build_command you declared in raiku.toml.Your README.md must contain at minimum:- What the package does (one to two sentences)
- The
raiku install <name>install command - A basic usage example
Validate — zero errors required
Generate the index entry and SHA-256
raiku publish validates your package one final time, computes the SHA-256 hash of raiku.toml, and prints the exact JSON object to add to index/index.json:Add the index entry to index/index.json
index/index.json and paste your index entry into the "packages" array. The file must remain valid JSON at all times — invalid JSON blocks all installs for every Raiku user.Example entry:Verify the index is consistent
index/index.json resolves to a valid path and hash — including your new entry:Open a pull request
main branch of the upstream repository:- Title:
add(<Language>): your-package-name v1.0.0 - Branch:
add/<language>/your-package-name - Body: include a brief description of the package, the output of
raiku validate, and the language or toolchain requirements (e.g. compiler version, runtime)
add(Rust): blazing-vec v1.0.0PR Requirements
Title Format
PR titles must follow this exact pattern:Branch Name Format
Required PR Body Content
- Brief description of what the package does
- Output of
raiku validate --dir UserSub/<Language>/your-package - Language and build requirements (compiler/runtime version, any external toolchain dependencies)
Updating an Existing Package
Bump the version in both files
version in both raiku.toml and version.yml. The two values must match exactly, and the new version must be strictly higher than the currently published version. Follow semantic versioning: PATCH for bug fixes, MINOR for new backward-compatible features, MAJOR for breaking changes.Add a changelog entry
changelog list in version.yml describing what changed. Do not remove old entries.Update index/index.json
version and sha256 fields for your package in index/index.json with the values printed by raiku publish.CI Checks
Every pull request automatically triggers the following checks. Your PR will not be merged until all of them pass:Full Package Validation
raiku validate --all --strict runs against every package in the entire UserSub/ tree — not just yours. Any pre-existing package your changes accidentally break will fail CI.JSON Lint
index/index.json is linted for valid JSON syntax. A single misplaced comma or missing bracket fails this check and blocks all user installs.Schema Check
index/index.json is validated against schemas/schema.yml. Entries with missing required fields or invalid types are rejected.Hash Verification
raiku index --check verifies that every sha256 in the index matches the actual raiku.toml file at the referenced path. Stale or incorrect hashes fail this check.Verification Suite
python _verify.py runs 60 automated checks covering the CLI, validator, installer, index manager, and parser. All 60 must pass.Smoke Tests
python _smoke_new.py runs 18 feature smoke tests against live package operations to catch regressions introduced by new packages.Review Process
Maintainers review contributions for correctness, security, and compliance withrules.md. Specifically, reviewers check that:
- The build command is safe and does not contain any forbidden patterns.
- The source code does not contain suspicious, offensive, or harmful content.
- The package name is unique and follows all naming rules.
- All required files are present and well-formed.
- The index entry is correctly formatted with an accurate SHA-256 hash.
raiku sync on any user’s machine.
raiku validate.Local Testing Before Opening a PR
Run these commands in the repository root before pushing to ensure everything is in order:Common Contribution Issues
raiku validate reports: version mismatch between raiku.toml and version.yml
raiku validate reports: version mismatch between raiku.toml and version.yml
version field must be identical in both files. Open both files and make sure they match exactly — including pre-release suffixes. For example, 1.0.0-beta.1 in raiku.toml requires exactly 1.0.0-beta.1 (not 1.0.0) in version.yml.raiku validate reports: language does not match directory
raiku validate reports: language does not match directory
language field in raiku.toml must match the language subdirectory your package lives in. A Rust package placed under UserSub/Python/ will fail this check. Move the package to the correct directory or update the language field.raiku validate reports: forbidden pattern in build_command
raiku validate reports: forbidden pattern in build_command
build_command contains a pattern that is blocked for security reasons. Review the full list of forbidden patterns in rules.md §7.1 and rewrite the command to achieve the same result without using any of them.raiku validate reports: src/ directory is empty
raiku validate reports: src/ directory is empty
src/ directory must contain at least one file. Add your source code before running validation. If you used raiku init, make sure you replaced the placeholder files with actual content.CI fails: hash verification — sha256 mismatch
CI fails: hash verification — sha256 mismatch
index/index.json does not match the actual raiku.toml file. Re-run raiku publish --dir UserSub/<Language>/your-package and replace the sha256 value in your index entry with the freshly computed hash. This typically happens when you edit raiku.toml after running raiku publish.CI fails: JSON lint on index/index.json
CI fails: JSON lint on index/index.json
index/index.json contains invalid JSON. Common causes are a trailing comma after the last entry in the array, missing quotes around a string value, or a mismatched bracket. Use a JSON validator locally (python -m json.tool index/index.json) to find and fix the syntax error.My PR was rejected — what now?
My PR was rejected — what now?
question label.