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 |