# LuaRadio [](https://github.com/vsergeev/luaradio/actions/workflows/tests.yml) [](https://github.com/vsergeev/luaradio) [](https://github.com/vsergeev/luaradio/blob/master/LICENSE) [](https://luaradio.io/docs/reference-manual.html) [](https://groups.io/g/luaradio) **LuaRadio** is a lightweight, embeddable flow graph signal processing framework for software-defined radio. It provides a suite of source, sink, and processing blocks, with a simple API for defining flow graphs, running flow graphs, creating blocks, and creating data types. LuaRadio is built on [LuaJIT](http://luajit.org/), has a small binary footprint of under 750 KB (including LuaJIT), has no external hard dependencies, and is MIT licensed. LuaRadio can be used to rapidly prototype software radios, modulation/demodulation utilities, and signal processing experiments. It can also be embedded into existing radio applications to serve as a user scriptable engine for signal processing. LuaRadio blocks are written in pure Lua, but can use [LuaJIT's FFI](http://luajit.org/ext_ffi.html) to wrap external libraries, like [VOLK](http://libvolk.org/), [liquid-dsp](https://github.com/jgaeddert/liquid-dsp), and others, for computational acceleration, sophisticated processing, and interfacing with SDR hardware. Use GNU Radio? See [how LuaRadio compares to GNU Radio](docs/6.comparison-gnuradio.md). See the LuaRadio [mailing list](https://groups.io/g/luaradio) for general discussion. ## Example ##### Wideband FM Broadcast Radio Receiver