References - Jai-Community/Jai-Community-Library GitHub Wiki

Community Libraries

Libraries and Modules 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.

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
  • JaiCapture - Library for capturing variables in compile time lambda closure function equivalents in jai.
  • nanoid - A simple NanoID implementation.
  • MetaThreadSafe - A metaprogram plugin to verify safe thread access and help prevent multithreading issues.

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.
  • 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
  • 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)

Example code

Other Guides and Documentation

Articles

Tooling Ecosystem

Resources