Tractor is a JavaScript library made for interfacing with Drawpile servers as a client.
Tractor v0.1.0 © 2026 Theo Range @ abtmtr.link
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see the copy hosted at codeberg.org:MeowcaTheoRange/Tractor, or the original copy at https://www.gnu.org/licenses/.
- [-] Can log into locally hosted servers and the Drawpile built-in server
- .. with TCP
- .. with TCP+STARTTLS
- .. with WebSocket
- .. as a web browser
- [-] Can log into remote servers
- .. with TCP
- .. with TCP+STARTTLS
- .. with WebSocket
- .. as a web browser
- [-] State handling
- Recieves and stores login state
- [-] Recieves and stores session catch-up state
- [-] Recieves and stores user state
- Recieves and stores layer state
- Recieves and stores session config state
- Recieves and stores session listing state
- Recieves and stores chat state
- Recieves and stores private chat state
-
Recieves and stores drawing state← Will probably only happen outside of upstream - I don't want to support this.
- [-] State sending
- Sends login state
- Sends user state
- Sends layer state
- Sends session config state
- Sends chat state
- Sends private chat state
- [-] Sends drawing state
Run this command to install directly from Codeberg:
npm install git+https://codeberg.org/MeowcaTheoRange/Tractor.gitInstall a version of Tractor compatible with Drawpile protocol version dp:4.25.1:
npm install "git+https://codeberg.org/MeowcaTheoRange/Tractor.git#tractor-4.25.1"See MANIFESTO.