Libraries

Search every package published to the Sere registry. Install one with sere add, or push your own with the publish API. The standard library still ships with the compiler — everything in the list above is a package you opt into.

Sort

2 packages

The packages the most projects already depend on.

Publish a package

Describe the package in sere.toml, sign the CLI in once with a token, then publish from the library folder. Versions are immutable: uploading the same version twice is rejected, so a tag in a manifest always resolves to the same bytes.

Open your developer account
sere.toml
# sere.toml — read by the registry and by sere add
[package]
name = "hello-utils"
version = "0.1.0"
summary = "Small helpers for Sere projects."
license = "MIT"
repository = "https://github.com/you/hello-utils"
keywords = ["utilities", "strings"]
publish
cd hello-utils          # the folder holding sere.toml
sere login $SERE_TOKEN  # once per project
sere publish

Authenticate

Create an account and issue a token, then send it as Authorization: Bearer. Revoke a token whenever you like without disturbing the others.

Where archives live

Each upload lands in the packages bucket at <name>/<version>/<name>-<version>.tar.gz, alongside its SHA-256 so installs can verify what they fetch.

Read API

GET /api/packages lists and searches, /api/packages/<name> returns every version, and /api/packages/<name>/<version> hands back a download URL.

Standard library

Prelude is always there. Everything else is import.

prelude

Always injected: print, abs, min, max, Int / Float, dbg!.

io

read_line, eprint, extra I/O on top of the print intrinsic.

fs / path / os / env / sys

Files, paths, process, and the host.

string / bytes / encoding / regex

Text and binary. Backtick literals type as regex.

math / vec / matrix / ml / arrays

Numeric work and linear algebra.

hash / random / time / log / bit

Utilities you reach for in a real binary.

gc / heap / memory

Collectors, arenas, pointer vocabulary.

inspect

label and describe, not the builtin typeof / dir.

html_lang

html: raw macro plus the Html wrapper.

windows / gl / qt6

Win32, OpenGL 2.1+, Qt widgets (stub if missing).

requests

HTTP client: get, post, put, delete.

wsgi

Blocking HTTP server. Subclass Handler and implement handle.

Packing your own

A library is either a packed .slib you drop in libs/, or a folder the compiler reads directly. Packing keeps the entry, the local modules it imports, and any compiled native objects in one file.

powershell
sere init-lib mathlib
cd mathlib
sere pack
copy dist\mathlib.slib ..\myapp\libs\
main.sere
import mathlib

def main() -> i32:
    return mathlib.add(2, 3)