How bytes.io works
bytes.io doesn't host anything. It's a thin, static index over GitHub repos that follow two small conventions.
1. The index
Every known library is listed in index.json, kept in Bytes-Repository/repository. It's an array of single-key objects mapping a library name to its GitHub URL:
[
{ "mold": "https://github.com/Bytes-Repository/mold" },
{ "obsidian": "https://github.com/Bytes-Repository/obsidian" },
{ "tui": "https://github.com/Bytes-Repository/tui" },
{ "silver": "https://github.com/Bytes-Repository/silver" },
{ "nidus": "https://github.com/Bytes-Repository/nidus" }
]
This whole site fetches that file directly from GitHub at load time, so adding a library is a single pull request — no publish step, no build.
2. The manifest — bytes.hk
Each repo carries a bytes.hk file at its root, playing the role Cargo.toml plays for Rust — with its own block syntax:
@package {
name: "mold"
version: "0.4.2"
authors: ["janekk"]
license: "MIT"
description: "Molding utilities for H#"
}
@deps {
obsidian: "^1.2.0"
silver: ">=0.3"
}
@build {
entry: "src/main.h#"
target: "native"
}
bytes.io fetches and parses this file client-side to render the package, dependency, and build panels on each library's page.
3. Language detection
The language bar on every library page starts from GitHub's own /languages API, then adds three extensions GitHub's linguist doesn't recognize by walking the repo's file tree:
When H# is a repo's dominant language, its page shows the glossy H# badge instead of a plain legend dot.