惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
D
Docker
Vercel News
Vercel News
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
爱范儿
爱范儿
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - code-by-sia/xi: The Ξ (Xi) Programming Language
sia_xi · 2026-06-26 · via Hacker News: Show HN

Xi programming language logo

Xi is a statically-typed, ahead-of-time compiled language with first-class dependency injection, eight function kinds, and refined types that enforce their constraints. It compiles to native binaries through a C99 backend, and its compiler is written in Xi and self-hosting.

import "std/log.xi"

interface Greeter { mapper greet(name: String) -> String }

class Friendly implements Greeter {
    deps {}
    mapper greet(name: String) -> String {
        return "Hello, " + name + "!"
    }
}

module App {
    id      = "greeter"          // name of the compiled binary
    name    = "Greeter"
    version = "1.0.0"
    license = "Apache 2.0"

    // the entry can live inside its module; dependencies are auto-wired.
    // `entry` always returns Integer, so `-> Integer` is optional and a body
    // without a `return` exits 0.
    async entry (logger: Logger, greeter: Greeter) main(args: String[]) {
        logger.info(greeter.greet("Ada"))
    }
}

A folder can hold several such modules; xc --all builds each into its own binary (named by its id). The entry may also be written at the top level with a separate module App { … } block — both forms work.

Why Xi

  • Dependency injection & IoC are part of the language, not a framework. Implementations are discovered and wired automatically; bind is an optional override.
  • Eight function kinds name a function's role and intent — mapper, projector, predicate, consumer, producer, reducer, creator, action — and the compiler enforces purity for the pure ones.
  • Decision tables (decision kind) express business rules as when <cond> => <result> arms (or a tabular in/out grid) — and, being a function kind, they're DI-injectable and can call predicates.
  • Interrupts — resumable conditions: a function signals and suspends; an enclosing try/catch decides to recover (resume) or skip (abandon). See Interrupts.
  • Atoms — active-state stores: an immutable state changed only via transition reducers (Redux-style). See Atoms.
  • Machines — finite state machines as immutable values: named states, machine-wide data, transitions with parameters, where guards and update clauses, .can(...), and illegal moves that raise the resumable IllegalTransition interrupt. See Machines.
  • Events — built-in typed publish/subscribe. Producers publish(topic, dto) any DTO; the listener kind subscribes to a topic and receives the typed value (no JSON). The default transport queues in memory with zero serialization; bind your own PublisherService/ConsumerService to go external — producers and listeners are unchanged. Deliver synchronously (Events.run) or on a worker thread (Events.runAsync). See Events.
  • Web framework — implement WebRequestHandler and route by overloading action handle(req, res) with where guards; res.send(dto) / req.parse(T) auto-(de)serialize via a pluggable WebTransport (JSON by default). No manual JSON. Plain HTTP by default; opt-in HTTPS (web.serveTLS, XC_TLS=1) and HTTP/2 (web.serveHttp2, XC_HTTP2=1). See Web.
  • Share-nothing threadingparallel { } blocks run on OS threads and yield a Thread handle (stop/wait/running); threads talk only over thread-safe channels. See Threading.
  • Refined types carry constraints (type Age = Number where value >= 0) that are checked at construction.
  • Sum / algebraic types (type Shape = | Circle { r: Number } | Empty) with payload-binding match — lowered to tagged unions.
  • Result-based error handling (T!, ok/err, ? propagation) — no exceptions.
  • where-guarded overloading, match, optionals (T?), arrays (T[]), and a Bytes type for binary data.
  • C interop — port a C library by declaring it in an extern "C" block with link/pkg/cflags build directives; Ptr/cstring types, &mut out-params, and a std/ffi String↔cstring bridge. See C interop (e.g. a SQLite binding).
  • Multi-file projects with import and namespace, plus a module dependencies field — list source-archive URLs and xi install fetches them into ./modules (auto-compiled in, no manual import).
  • A growing standard library — math, text, bytes, convert, serialization (json / yaml / xml), crypto (SHA/HMAC/base64/CSPRNG), fs, path, net (TCP sockets), http (HTTP/1.1 client), web (REST framework), thread (share-nothing threads + channels), process, time, ffi (C interop) — see the standard library and serialization.
  • Native, dependency-light output: Xi → C99 → a native binary via your cc.
  • Runs on the web too: the same source compiles to WebAssembly with xc --target wasm (via Emscripten). See the WASM guide.

Full feature matrix: FEATURES.md. Full guide: code-by-sia.github.io/xi.

Quick start

On macOS (Apple Silicon + Intel) and Linux, install with Homebrew:

brew install code-by-sia/xi/xi
brew upgrade xi        # later, to update

Or download a prebuilt toolchain for your platform from the releases page, unpack it, and put its bin/ on your PATH:

# grab the asset for your platform, e.g. xi-<version>-macos-arm64.tar.gz
tar -xzf xi-<version>-<os>-<arch>.tar.gz
export PATH="$PWD/xi-<version>-<os>-<arch>/bin:$PATH"

Either way you get xc and xi:

xc hello.xi        # compile  -> build/hello
xc --all           # build every module project under the current dir
xi hello.xi        # compile and run
xi                 # interactive REPL
xi version         # print the toolchain version
xi update          # self-update to the latest release (tarball installs)
xi skill           # print the AI-agent language guide (xi skill > SKILL.md)
xt file_test.xi   # run tests (also: xt --all)
loadtest --bench app.xi   # load/perf test (--compile / --bench / --http)

Once installed, xi update upgrades the toolchain in place (downloads the latest release for your platform and replaces the binaries, runtime, and stdlib).

The bundle ships the xc compiler, the xi REPL / run tool, the runtime, and the standard library; the bin/ wrappers set XC_RUNTIME / XC_STD for you. You need a C compiler (cc / clang / gcc) on PATH, since xc produces native binaries via C. (To build from source instead, run ./compiler/bootstrap.sh — see github.com/code-by-sia/xi.)

Runs on Linux (x86_64/arm64) and macOS (arm64/x86_64). On Windows, use WSL2 and follow the Linux steps, or run the toolchain in Docker (no native Windows build yet):

docker build -t xi .
docker run --rm -v "${PWD}:/work" xi xi hello.xi   # compile + run
docker run --rm -v "${PWD}:/work" xi xc hello.xi   # compile -> build/hello
docker run --rm -it -v "${PWD}:/work" xi xi        # REPL

The image downloads a published release; pin one with --build-arg XI_VERSION=v0.0.14. See the Dockerfile.

Documentation

Full documentation — the language guide, dependency injection & IoC, decision tables, interrupts, atoms, state machines, events, serialization, the standard library, and the compiler internals — lives in the repository at github.com/code-by-sia/xi (rendered at code-by-sia.github.io/xi).

Showcase

eXstream is a full real-world app built with Xi — a music-streaming service whose backend is a set of Xi microservices (auth, file storage, playlist) behind an API gateway, with a React front end and Docker deployment. It's a good end-to-end example of structuring a larger project with modules, dependency injection, the web framework, and JWT auth.

Project layout

compiler/   the compiler, written in Xi (lexer, parser, codegen, driver) + xc_helpers.c
            plus bootstrap.sh / fetch-seed.sh / selfhost.sh
runtime/    the C runtime (runtime.h, runtime.c) — the Xi equivalent of libc/libcore
std/        standard library (math, text, bytes, convert, json, yaml, xml, crypto, events, web, io, fs, path, net, http, process, time)
examples/   runnable programs, incl. proj/ (multi-file) and showcase/ (full project)
docs/       documentation (Docusaurus site under website/)
editors/    Tree-sitter grammar, Zed extension, Vim plugin

Editor support

A Tree-sitter grammar plus Zed and Vim integrations live in editors/. The grammar parses every .xi file in this repo.

License

Xi is licensed under the Apache License 2.0 — see LICENSE and NOTICE. It is provided "AS IS", without warranties of any kind, and with no obligation of support (Apache-2.0 §7–§8). It's an experimental personal project — issues/PRs are welcome, but no support or maintenance is guaranteed. See CONTRIBUTING.md and SUPPORT.md.