Community-maintained registry of replibuild.toml configs for popular C/C++ libraries. Search, fetch, and build wrappers directly from Julia — no manual setup required.
Repository: github.com/obsidianjulua/RepliBuild-Hub
using RepliBuild
# Search available packages
RepliBuild.search("lua")
# Install and use — one call does everything
Lua = RepliBuild.use("lua")
Lua.luaL_newstate()use() checks your local registry first. On a miss, it fetches the TOML from the hub, registers it locally, then runs the full pipeline: dependency resolution → compile → link → DWARF introspect → wrap → load.
Subsequent calls are cached — rebuild only happens when the TOML or source content changes.
RepliBuild-Hub/
index.toml # package listing (used by search())
packages/
lua/
replibuild.toml
sqlite/
replibuild.toml
cjson/
replibuild.toml
Flat listing of every package with metadata for search and display:
[lua]
description = "Lua 5.4 scripting language"
version = "5.4.7"
language = "c"
tags = ["scripting", "embedded"]
[sqlite]
description = "SQLite embedded database engine"
version = "3.46"
language = "c"
tags = ["database", "embedded"]
[cjson]
description = "Ultralightweight JSON parser in C"
version = "1.7.18"
language = "c"
tags = ["json", "parser"]Each packages/<name>/replibuild.toml is a standard RepliBuild config. The key difference from local configs: source code is declared as a git dependency rather than local paths.
[project]
name = "lua"
uuid = "..."
root = "."
[dependencies]
lua = { type = "git", url = "https://github.com/lua/lua.git", tag = "v5.4.7" }
[compile]
flags = ["-std=c99", "-fPIC", "-DLUA_USE_LINUX"]
source_files = [] # populated from dependency after fetch
include_dirs = []
[link]
enable_lto = true
optimization_level = "2"
[binary]
type = "shared"
[wrap]
style = "clang"
language = "c"
[types]
strictness = "warn"
[cache]
enabled = trueWhen use() fetches this TOML, RepliBuild's DependencyResolver clones the git repo, injects the source files and include paths, then the standard pipeline takes over.
Override the hub URL for private registries or mirrors:
export REPLIBUILD_HUB_URL="https://raw.githubusercontent.com/your-org/your-hub/main"- Fork RepliBuild-Hub
- Create
packages/<name>/replibuild.tomlwith a git dependency pointing to upstream source - Add an entry to
index.tomlwith description, version, language, and tags - Test locally:
RepliBuild.register("packages/<name>/replibuild.toml"); RepliBuild.use("<name>") - Open a PR
- Package names are lowercase, no underscores (e.g.,
cjsonnotc_json) - Point dependencies at stable tags, not branches
- Include only the minimal flags needed — RepliBuild handles debug metadata and LTO automatically
- Test that
use("<name>")succeeds on a clean machine before submitting