mirror of
https://github.com/Donkie/Spoolman.git
synced 2026-10-22 10:02:17 -05:00
a733366be98a9547531a3be4ebe7afd07d3e9923
Spamming between the Library and Locations pages queued up a heap of spool queries that kept running after their view was gone: the results were discarded, but the requests still cost bandwidth and backend work, and piled up behind the browser's per-host connection limit. Reads now take an optional AbortSignal (getList/getJson, SpoolQuery and GroupQuery gain a `signal`), and every list view cancels what it no longer needs on effect-cleanup / unmount: FilamentList, GroupRow, PrintLayoutPanel and the locations page — whose MAX_INFLIGHT queue also drops turns still waiting when the page went away. Writes deliberately keep no signal, since a request that has left the browser has already changed the server. isAbortError() takes the signal as the reliable cancellation test, because an aborted fetch does not always reject with a DOMException named AbortError. Measured on a ~4900-spool backend, leaving the Library mid-load went from 17 row queries still completing after navigation to 0 (all cancelled), with no console noise and no stuck cards on return. Claude-Session: https://claude.ai/code/session_014Cwk5Yyze9yPvkYkUtMAP4
Keep track of your inventory of 3D-printer filament spools.
Spoolman is a self-hosted web service designed to help you efficiently manage your 3D printer filament spools and monitor their usage. It acts as a centralized database that seamlessly integrates with popular 3D printing software like OctoPrint and Klipper/Moonraker. When connected, it automatically updates spool weights as printing progresses, giving you real-time insights into filament usage.
Features
- Filament Management: Keep comprehensive records of filament types, manufacturers, and individual spools.
- API Integration: The REST API allows easy integration with other software, facilitating automated workflows and data exchange.
- Real-Time Updates: Stay informed with live spool updates through Websockets, providing immediate feedback during printing operations.
- Central Filament Database: A community-supported database of manufacturers and filaments simplify adding new spools to your inventory. Contribute by heading to SpoolmanDB.
- Web-Based Client: Spoolman includes a built-in web client that lets you manage data effortlessly:
- View, create, edit, and delete filament data.
- Add custom fields to tailor information to your specific needs.
- Print labels with QR codes for easy spool identification and tracking.
- Contribute to its translation into 18 languages via Weblate.
- Database Support: SQLite, PostgreSQL, MySQL, and CockroachDB.
- Multi-Printer Management: Handles spool updates from several printers simultaneously.
- Advanced Monitoring: Integrate with Prometheus for detailed historical analysis of filament usage, helping you track and optimize your printing processes. See the Wiki for instructions on how to set it up.
Spoolman integrates with:
- Moonraker and most front-ends (Fluidd, KlipperScreen, Mainsail, ...)
- OctoPrint
- OctoEverywhere
- Home Assistant
- MCP Server - Manage your filament inventory through AI assistants like Claude using the Model Context Protocol
Installation
Please see the Installation page on the Wiki for details how to install Spoolman.
Description
Keep track of your inventory of 3D-printer filament spools.
Readme
MIT
15 MiB
0 Stars
1 Watchers
0 Forks