Skip to content

References

danieltan1517 edited this page Jan 14, 2025 · 124 revisions

Community Libraries

Libraries, Modules, and Programs written by the Jai Beta Community.

GUI/UI

  • ImGUI - IMGUI bindings for Jai.
  • XCB - XCB bindings for linux windowing.

Graphics

Audio

Cryptography

  • Crypto - Cryptographic primitives library.

Networking

Databases

  • Postgresql - Postgres bindings.
  • Redis - Redis API library.
  • SQLite3Jai - SQLite3 bindings.
  • jai-sqlite3 - A little example of how to use Jai’s bindings generator to use sqlite3 in Jai.

Math, Linear Algebra, & Physics

  • GraphBLAS - Sparse matrix linear algebra library.
  • Linalg - Linear algebra library with vectors, matrices and quaternions.
  • MathExtensions - Advanced math functions for Jai

File formats

  • CSV - CSV file reader.
  • GDAL - GDAL library interface; handles dozens of file graphical/geographical file formats.
  • INI - INI file reader/writer.
  • ContiguousJson - JSON reader/writer that keeps the data in contiguous memory.
  • JSON - JSON reader/writer.
  • QOI - QOI file reader.
  • ZIP - ZIP read/write library. Wrapper around kuba--/zip.
  • XML - XML parser and DOM interface library.
  • TOML - A module for TOML v1.0.0 support.
  • FFmpeg - FFmpeg bindings for jai and some examples decoding and play videos

Compression

Utilities

  • Metaprogram - automatically download jai-modules from github via #import
  • C - Interop library for writing C bindings.
  • jai-string - onelivesleft's String library.
  • Fmt - A string formatting library.
  • jai-date - Small date module for Jai
  • jai-unicode - Unicode utility functions for Jai
  • Magic - libmagic bindings.
  • Steam API - Steam API library.
  • Uniform - Fully-featured regular expression library.
  • jai-parallel-for - execute for-like loops in parallel
  • SimpleSerializer - serialize and de-serialize to/from binary data
  • JaiSerializer - Simple library to read/write structs or nearly any data type into binary.
  • osor_serialization - A serialization module for Jai
  • construct - #insert structs as constants during compile time
  • Jai-Plot - a simple scientific plotting tool to be called from Jai code
  • Symbols - A load macro that allows the use of non-ascii characters in .jai code files
  • stb/truetype - To load fonts.
  • Arithmetic Coding - An arithmetic coder (encoding and decoding) with custom frequency tables.
  • JaiBoy - A GameBoy Emulator in Jai
  • 3ds-hello-jai - An example Jai program for the Nintendo 3DS!
  • Playdate - Playdate handheld bindings for Jai
  • Jai Bunnymark - D3D11 - Just checking how fast computers can go
  • clipman - A Clipboard manager for Windows, alternative to Ditto.
  • jisp - Automatically parses a Lisp into Jai code at compile-time.
  • osor_parser - A parsing module for Jai
  • osor_coroutine - A coroutine module for Jai.
  • tracy - Jai bindings for Tracy, a powerful open-source telemetry profiler.
  • twitch_irc - A Twitch IRC library written in Jai
  • chi_state_tracker - System to track and query against the systems knowledge of a game state.
  • jai-autocomplete - A simple command line tool to list which procedures accept a given struct as a parameter.
  • kscurses - A Jai port of curses (a terminal control library (TUI) for Unix-like systems).
  • gltf_parser - A glTF parser for Jai codebase.
  • jai-sim86-bindings - Jai bindings for Casey Muratori's 8086 Simulator
  • nanoid - A simple NanoID implementation.
  • MetaThreadSafe - A metaprogram plugin to verify safe thread access and help prevent multithreading issues.
  • jai-modules - Various modules: Saturation provides integer saturation arithmetic procedures: add, sub, mul, and div; TUI provides functionalities similar to the ncurses library; UTF8 provides basic operations over UTF8 encoded strings.

Version Control Systems

  • ark-vcs - A Versioning Control System with Games in mind, by Nuno Afonso.

Testing

  • Stubborn - Minimal test runner and assertion library.

Algorithms

Physics

  • JaiBox2D - Bindings for Box2D.
  • JaiBullet - Bindings for Bullet Physics based on an incomplete C wrapper.
  • JaiPhysX - PhysX 4.1 c-style bindings.
  • KodaPhysics - Static only physics engine.

Artificial Intelligence and Machine Learning

  • Chess AI + UI - Chess Engine with Neural Networks and Lazy SMP Parallel Search with User Interface
  • Xiangqi AI - Xiangqi Chinese Chess Engine with Neural Networks and Lazy SMP Parallel Search with User Interface
  • MNIST in Jai - Neural Networks in Jai to detect MNIST handwritten digits.

Operating Systems

  • theos - The Operating System. An Operating System written in Jai

Scientific

Compilation and WASM

Other

  • Jai-Win32 - Win32 bindings for the Jai programming language (includes Direct3D12 related bindings)
  • Jai experiments
  • jai-assertive - Better asserts (can be used for unit testing, or to replace asserts in debug builds for better error messages).

Example code

Other Guides and Documentation

Articles

Tooling Ecosystem

Resources

Clone this wiki locally