📚 Documentation
Everything you need to use the Roast Package Registry
🚀 Getting Started
The Roast Package Registry hosts packages for the Roast programming language. Use the kitchen CLI to manage packages.
curl -fsSL https://roast-lang.org/install.sh | sh
📦 Installing Packages
Add a dependency
kitchen add <package-name>
Install all dependencies
kitchen install
Add specific version
kitchen add <package-name>@1.2.3
roast.toml
Dependencies are stored in your roast.toml:
[dependencies] json = "1.0.0" http = "2.1.0"
📤 Publishing Packages
1. Create an account
Register at /register or via CLI:
kitchen register
2. Login
kitchen login
3. Prepare your package
Ensure your roast.toml has required fields:
[package] name = "my-package" version = "1.0.0" description = "A useful package" authors = ["Your Name <you@example.com>"] license = "MIT" keywords = ["utility", "helper"]
4. Publish
kitchen publish
🔌 API Reference
The registry provides a REST API for programmatic access.
Base URL:
https://registry.roastlang.wiki/api/v1
Content-Type:
application/json
🔐 Authentication
Protected endpoints require a Bearer token in the Authorization header:
Authorization: Bearer <your-api-token>
Get your API token
📡 API Endpoints
GET
/api/v1
Registry information
GET
/api/v1/packages
List all packages
GET
/api/v1/packages/:name
Get package metadata
GET
/api/v1/packages/:name/:version/download
Download package tarball
GET
/api/v1/search?q=query
Search packages
POST
/api/v1/packages
Publish package
🔐 Auth Required
POST
/api/v1/users/register
Register new user
Example: Get Package
curl https://registry.roastlang.wiki/api/v1/packages/json
Example Response
{
"name": "json",
"description": "JSON parsing library",
"versions": [
{
"version": "1.0.0",
"published_at": "2024-01-15T10:30:00Z",
"yanked": false,
"download_url": "/api/v1/packages/json/1.0.0/download"
}
],
"downloads": 1234
}
Example: Publish Package
curl -X POST https://registry.roastlang.wiki/api/v1/packages \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "X-Package-Name: my-package" \ -H "X-Package-Version: 1.0.0" \ -H "X-Package-Description: My awesome package" \ --data-binary @my-package-1.0.0.tar.gz
Example: Register User
curl -X POST https://registry.roastlang.wiki/api/v1/users/register \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "name": "Your Name", "password": "secret123"}'