📚 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

  1. Register at /register
  2. Check your profile at /profile
  3. Or use kitchen login

📡 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"}'