Skip to content
View Champii's full-sized avatar
💭
Rustifying the world
💭
Rustifying the world

Block or report Champii

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Champii/README.md

Champii — To dev, or not to dev? No question.

I build programming languages and systems software in Rust. My work explores how expressive abstractions, explicit ownership, and native execution can fit together — from a language and its compiler to decentralized storage and developer tools.

Rock · Language book · Contact

Rock — functional programming, native foundations

My main focus: building a language and the ecosystem around it.

Rock is an experimental, natively compiled language with a functional style and explicit ownership. Written in Rust and targeting LLVM, it brings together type inference, pattern matching, higher-kinded types, and deterministic resource cleanup. Its syntax draws from LiveScript, Haskell, and Rust: concise functions, readable pipelines, and abstractions that compose.

The ambition is to make functional programming feel natural in systems code: work with functions and containers at a high level while keeping borrowing, mutation, and resource lifetimes explicit. Traits such as Functor, Monad, and Traversable let different containers share operations; do notation makes dependent, fallible steps read as a flat sequence.

A small example: one operation, different containers

One Functor operation across Option and Vec: mapping double turns Some(21) into Some(42) and a vector of 1, 2, 3 into 2, 4, 6. None stays unchanged without calling double. Mapping consumes its input container.

double = value -> value * 2

main = !->
    mut values = Vec::new!
    for value in [1, 2, 3]
        values.push value

    Option::Some 21
        <&> double
        |> (.println!)  // Some(42)

    values
        <&> double
        |> (.println!)  // [2, 4, 6]

    Option::None
        <&> double
        |> (.println!)  // None

What I'm building now

A more expressive type system

Connecting higher-kinded abstractions, ownership-aware closures, and trait inference so ordinary programs need fewer annotations; exploring scoped dynamic dispatch and existential packages on a dedicated development branch.

A principled compiler–library boundary

Moving operator meaning and primitive arithmetic policy into the standard library, backed by explicit compiler intrinsics; extending UTF-8 text handling and generic, short-circuiting traversal.

A usable language toolchain

Developing rockup, the project CLI, language server, editor integrations, and the language book alongside the compiler, with reusable compiled dependency artifacts.

The hard problems

The challenge is making these features work together:

  • Ownership across abstractions — preserving borrowing and cleanup through closures and erased types.
  • Predictable inference — keeping generic trait calls understandable without excessive annotations.
  • Consistent semantics — carrying the same guarantees across separately compiled dependencies.

That makes compiler correctness, useful diagnostics, and realistic library programs central to the work.

Rock is still experimental. The published release and active development branches move at different speeds; the goal is a coherent, usable language, and the current work is about earning that reliability.

Explore the compiler → · Read the book · Try a release · Join the discussion

Selected projects

Rock ecosystem · Taking the language beyond the compiler

I'm building the surrounding tools and libraries that let Rock be used for real programs. rock_http is a blocking HTTP/1.1 server library written in Rock, with bounded request parsing, response framing, and a thread-per-connection model built on safe standard-library APIs. It gives the language a concrete systems workload.

rock.nvim, vscode-rock, and tree-sitter-rock bring the editing experience along with it.

Mutant · Mutable storage on a decentralized network

Conceptual illustration of Mutant: data is split into chunks and stored across a peer-to-peer network, with encryption and resumable transfers.

A Rust storage system that turns the Autonomi network into a mutable key–value interface. Mutant combines encrypted private storage and public sharing with chunked, resumable uploads, storage-pad reuse, and synchronization.

A persistent daemon manages network operations and background tasks, exposed through an async Rust API, a CLI, and a web workspace with file viewing, editing, and media streaming. The underlying problem: making distributed storage practical when transfers are interrupted, data changes, and network operations take time.

Asterinas · Kernel development in Rust

Kernel observability: scheduler statistics feed the proc load-average interface, making kernel state visible to userspace.

My kernel work includes contributing load-average accounting and the corresponding /proc/loadavg interface to Asterinas, a Rust operating-system kernel with a Linux-compatible ABI. The implementation connects scheduler statistics to the proc filesystem, using fixed-point arithmetic and lazy calculation of load averages.

It's systems work at a different layer: turning internal scheduling state into useful information for userspace while respecting kernel constraints. View the contribution →

Earlier explorations include Comet, a reactive, isomorphic full-stack framework for Rust, and reactive-postgres-rs, a reactive layer over PostgreSQL.

GitHub, in numbers

Live GitHub stats: stars, commits, pull requests, issues, and repositories contributed to Live GitHub contribution totals, current streak, and longest streak


Interested in language design, compilers, or decentralized systems? Let's talk.

Pinned Loading

  1. Rock-lang-org/Rock Rock-lang-org/Rock Public

    Native language with Rust & LLVM

    Rust 72 3

  2. Mutant Mutant Public

    Decentralized P2P Storage with Mutable Key/Value over the Autonomi Network

    Rust 20 1

  3. Comet Comet Public

    Reactive Isomorphic FullStack Web Framework for Rust

    Rust 42 2

  4. reactive-postgres-rs reactive-postgres-rs Public

    Reactive layer over PostgreSQL in Rust

    Rust 2

  5. og og Public

    Oglang - Language that compiles to Golang

    Go 96 6

  6. crypto-dht crypto-dht Public archive

    Blockchain over DHT in GO

    Vue 39 8