7e85ac97c9
It is possible that a subscripition request can occur between after Klipper updates a field's status, but before it pushes a status update to the connection. The result is a race condiiton where the response to the subscription request contains the lastest state but it is not propagated to currently connected clients. This is resolved by caching subscripiton data, diffing it with the response to the subscription request, and manually pushing the diff. Signed-off-by: Eric Callahan <arksine.code@gmail.com> |
||
---|---|---|
.github | ||
docs | ||
moonraker | ||
scripts | ||
tests | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.readthedocs.yaml | ||
LICENSE | ||
README.md | ||
mkdocs.yml | ||
pdm.lock | ||
pyproject.toml | ||
pytest.ini |
README.md
Moonraker - API Web Server for Klipper
Moonraker is a Python 3 based web server that exposes APIs with which client applications may use to interact with the 3D printing firmware Klipper. Communication between the Klippy host and Moonraker is done over a Unix Domain Socket. Tornado is used to provide Moonraker's server functionality.
Documentation for users and developers can be found on Read the Docs.
Clients
Note that Moonraker does not come bundled with a client, you will need to install one. The following clients are currently available:
- Mainsail by Mainsail-Crew
- Fluidd by Cadriel
- KlipperScreen by jordanruthe
- mooncord by eliteSchwein
Raspberry Pi Images
Moonraker is available pre-installed with the following Raspberry Pi images:
- MainsailOS by Mainsail-Crew
- Includes Klipper, Moonraker, and Mainsail
- FluiddPi by Cadriel
- Includes Klipper, Moonraker, and Fluidd
Docker Containers
The following projects deploy Moonraker via Docker:
- prind by mkuf
- A suite of containers which allow you to run Klipper in Docker. Includes support for OctoPrint and Moonraker.
Changes
Please refer to the changelog for a list of notable changes to Moonraker.