https://github.com/snidercs/luabot
Write robot firmware in Lua and C++
https://github.com/snidercs/luabot
frc-c-plus-plus frc-lua lua luajit-bindings
Last synced: 3 months ago
JSON representation
Write robot firmware in Lua and C++
- Host: GitHub
- URL: https://github.com/snidercs/luabot
- Owner: snidercs
- License: mit
- Created: 2024-01-28T00:52:41.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-12-21T23:24:44.000Z (4 months ago)
- Last Synced: 2025-12-22T07:39:45.375Z (4 months ago)
- Topics: frc-c-plus-plus, frc-lua, lua, luajit-bindings
- Language: Lua
- Homepage: https://snidercs.org
- Size: 554 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# LuaBot
A system for running LuaJIT powered FRC and other robots.
## Building
### Dependencies
* [CMake](https://cmake.org) - Build system.
* [Python](https://www.python.org/) - Required for yaml parsing and benchmarking.
* [Ninja](https://ninja-build.org/) - Recommended. The build instructions assume you have it.
* [Docker](https://docker.com) - Required to cross-compile LuaJIT for roboRIO
* [CCache](https://ccache.dev/) - Recommended for faster rebuilds.
### Get the Code
This projected includes various dependencies as submodules. Make sure to either clone with submodules.
```bash
git clone https://github.com/snidercs/luabot --recurse-submodules
```
Or if you did a normal clone, initialize them
```bash
git submodule update --init --recursive
```
### LuaJIT
LuaJIT needs built outside of cmake. We have scripting for that.
**Linux**
```bash
sh util/build-luajit-linux.sh
```
**macOS**
```bash
sh util/build-luajit-macos.sh
```
**Windows**
_TODO: coming soon..._
### YAML Python
Your system might not have the yaml library for Python.
### Build and Run Tests
The steps here are for a Unix based system but should work on any platform with C++.
```bash
# Configure the build directory
cmake -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Release
# Compile it
ninja -C build
# Test it
ninja -C build test
```