Skip to content

Latest commit

 

History

History
118 lines (94 loc) · 9.83 KB

File metadata and controls

118 lines (94 loc) · 9.83 KB

Awesome MoonBit

MoonBit logo

Everything you'll ever need on the road to mastering MoonBit.

A curated list of high-quality MoonBit libraries, frameworks, developer tools, and learning projects. Project names link to their source repositories.

Community

Libraries and Frameworks

Foundations and Testing

  • moonbitlang/core: The MoonBit standard library, installed with the toolchain.
  • moonbitlang/x: The official incubator for experimental standard-library extensions; APIs may change.
  • moonbitlang/async: The official experimental async runtime for files, processes, networking, sockets, and HTTP.
  • moonbitlang/quickcheck: Property-based testing for MoonBit programs.
  • moonbitlang/parser: Experimental AST, parser, configuration parser, and formatting support for MoonBit source.
  • moonbitlang/regexp: A Unicode-aware regular-expression engine with captures and backreferences; the API is still alpha.

Text, Data, and Parsing

Application Development

  • moonbit-community/proton: A framework for native desktop applications with web frontends on Windows, macOS, and Linux.
  • moonbit-community/rabbita: A declarative, functional web UI framework formerly known as Rabbit-TEA.
  • tiye/respo: A compact virtual-DOM library for browser applications.
  • mizchi/luna: An experimental declarative UI toolkit with virtual DOM, hydration, streaming rendering, and SSR/SSG companions.
  • oboard/mocket: A web framework supporting native and JavaScript backends.
  • mizchi/mars: A Hono-inspired web framework with trie routing, middleware, and server-sent events.
  • Yoorkin/rui: Self-contained Vega-style UI components for Rabbita.
  • mizchi/tui: A reactive terminal user-interface library.

Data Structures and Algorithms

  • dowdiness/alga: Algebraic graphs with reusable traversal, cycle, topological-sort, and strongly-connected-component algorithms.
  • dowdiness/incr: Incremental recomputation with automatic dependency tracking and durability-based verification.
  • Luna-Flow/linear-algebra: Checked matrix and vector APIs with mutable and immutable dense representations.
  • Suquster/moonbit-pathfinding: Pathfinding and graph algorithms including BFS, Dijkstra, A*, JPS, contraction hierarchies, and hub labels.

Systems and Interoperability

  • moonbit-community/tty: Low-level native terminal state, standard handles, VT output, and input decoding.
  • moonbit-community/pty: Cross-platform pseudo-terminal spawning integrated with moonbitlang/async.
  • justjavac/ffi: Tested UTF-8 C-string and UTF-16 wide-string conversions for FFI boundaries.
  • illusory0x0/native: Native FFI utilities for pointer arithmetic, C strings and arrays, reference counting, and allocation.
  • mizchi/js: JavaScript bindings for built-ins and browser, Node.js, Deno, and Bun APIs.
  • bikallem/webapi: Type-safe Web Platform API bindings generated from WebIDL for the JavaScript and wasm-gc backends.
  • moonbit-community/sqlite3: Lightweight, low-level bindings that provide a thin interface over the SQLite3 C API.
  • moonbit-community/postgres: A PostgreSQL client library with an included connection pool.
  • mizchi/wit: A parser and resolver for WebAssembly Interface Types.
  • gmlewis/moonbit-pdk: The actively maintained Extism plug-in development kit for MoonBit.

Graphics and Media

  • bobzhang/colors: Color conversion and manipulation across RGB, linear RGB, XYZ, and LUV spaces.
  • mizchi/image: Image codec primitives for PNG, BMP, JPEG, GIF, WebP, ICO, and AVIF, plus resizing.
  • Milky2018/wgpu_mbt: MoonBit bindings for the wgpu-native WebGPU API.
  • Milky2018/moon_rapier: A MoonBit port of the Rapier physics engine.
  • moonbit-community/diago: A diagram toolkit with D2-compatible input, multiple layout engines, and SVG or text output.

Developer Tools

  • Moon: The official build system and package manager.
  • MoonLex: A lexer generator for MoonBit.
  • MoonYacc: An LR(1) parser generator.
  • protoc-gen-mbt: Protocol Buffers code generation and runtime support.
  • tree-sitter-moonbit: The official Tree-sitter grammar for MoonBit.
  • setup-moonbit: A GitHub Action for installing and caching the MoonBit toolchain.
  • moonbit.nvim: MoonBit language support for Neovim.

Showcase and Learning Projects

  • MoonBit Gallery: Editable browser demos including Tetris, Mario, Sudoku, Snake, and WASM-4 examples.
  • Build Your Own MoonBit: An educational implementation of a small MoonBit-like language.
  • wasm5: A WebAssembly virtual machine written in MoonBit.
  • mbtcc: A C11 compiler implemented in MoonBit.
  • MoonbitNES: A Nintendo Entertainment System emulator written in MoonBit.

Documentation and Learning