VexelRay
Framework docs

The repositories

Every piece of VexelRay is its own repository under github.com/sibarum. This page says which of them an application made from the framework’s template needs, which ones add something you may want, and which ones you can leave out. Getting started has the commands to clone and install them.

Needed

A project made from the vexel-desktop template builds against these eleven. vexelray-framework/bootstrap.sh clones and installs them in this order, because each needs the ones before it:

Repository What it is for
vexelray-build A Maven plugin that stamps each build with the exact source it came from. Every repository below uses it in its build, your project too, so it goes first
intrabuf Serialization the message bus carries its envelopes in
atchung The typed message bus and the logger nearly every repository uses, with elektroq, the queue and transports under the bus
supirvast The expression language the engine’s shaders are written in
dxgi-bridge Presentation on Windows
kronometer Time and animation: one logical clock drives every animation
tactroller Input: keyboard, pointer and clipboard
vexelray The engine: Vulkan, 2D drawing, text and windowing
imagelib-wrapper Image decoding, in Rust behind a small Java API. Your application does not link it, but vexelray-gui’s build does: its icon plugin reads icon art with it. Its native library is built from source first (imagelib-wrapper-windows/native/build.sh, or -linux/; bootstrap.sh does it), which needs a Rust toolchain
vexelray-gui The widgets, layout and theme, and the automation that drives a running window (ottermate)
vexelray-framework The framework itself, and the template a new project is made from

Optional

Each of these adds something to an application. Nothing in the needed repositories depends on them, so an application that does not use one does not carry it.

Repository What it adds Before it
vexelray-codec Pictures, video with sound, and 3D meshes in your application: decoded files put onto the GPU and into the widget tree imagelib-wrapper and ffmpeg-wrapper
ffmpeg-wrapper Video and audio decoding through FFmpeg, which vexelray-codec’s video uses. Its native shim and a pinned FFmpeg are fetched and built first (ffmpeg-wrapper-windows/native/build.sh, or -linux/), which needs a C compiler vexelray-build
vexelray-installer Shipping: turns your native executable into a one-line installer served from a GitHub repository. See Shipping vexelray-build
vexelray-sim-core What GPU simulations share. vexelray-sim-fluid and vexelray-sim-rigid build on it The needed repositories
vexelray-inspector DevTools for your application: attach to it while it runs and watch its frame loop, messages, timers and animations. Your project can already be attached to; the Inspector is the application that does it, and installs with the others The needed repositories

Not needed

These belong to the suite’s own applications. You do not need them to build one of your own.

Repository What it is
vex-suite-common What the suite’s applications share: Vexplore’s and Pix’s image viewer, Vex’s and MainFrame’s terminal
cott-engine The Calculator’s number model, which divides by zero
cardinal and concordance-indexer Vex’s source index: queries over Java that go beyond text search
vexelray-icons The source art of the suite’s icons. vexelray-gui carries a copy, so it builds without this
vexelray-dist How the suite’s applications are built, released and installed
The applications Vexplore, Vex, Pix, MainFrame, Calculator, Maistro, and the simulations. Each is a worked example of something larger than the template, and worth reading