A lightweight, modular Python framework for job queuing, scheduling, and automation around LinuxCNC
Project description
cnckit
A lightweight, modular Python framework for job queuing, scheduling, and automation around LinuxCNC.
Overview
cnckit provides a minimal core with optional integration modules, allowing you to adopt only the functionality you need. From simple local job queues to remote monitoring, API-based control, and more.
Features
Core (dependency-free):
- Job queue with FIFO/LIFO/priority ordering
- Scheduler with start/stop/pause controls
- Machine state abstraction over LinuxCNC
- Event callbacks for job lifecycle
- Simulation mode for development
Optional Integrations:
- REST API for remote monitoring
- MQTT for messaging and automation
- WebSocket real-time streaming
- Robot interfaces (ROS2, TCP)
Quick Start
from cnckit.core import Machine, JobQueue, Scheduler
machine = Machine(simulate=True) # or Machine() for real LinuxCNC
queue = JobQueue()
scheduler = Scheduler(machine, queue)
queue.add("part1.ngc")
queue.add("part2.ngc", priority=10)
scheduler.run_forever()
Installation
pip install cnckit
With optional integrations:
pip install cnckit[api] # REST API
pip install cnckit[mqtt] # MQTT
pip install cnckit[all] # Everything
Documentation
- Quick Start — Get up and running
- Architecture — Design philosophy
- API Reference — Full API docs
- Roadmap — Planned features
Development
git clone https://github.com/jkkicks/cnckit.git
cd cnckit
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest
See Contributing for guidelines.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cnckit-0.1.0.tar.gz.
File metadata
- Download URL: cnckit-0.1.0.tar.gz
- Upload date:
- Size: 34.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92fb0c17650f8b97ce1e631eeaf55a026e208f48c4f024e7f23402853723d4f4
|
|
| MD5 |
702f364776831d1aeb3e6afe63035bd3
|
|
| BLAKE2b-256 |
39ad2a0ddedfeb1f66d1d3ca3bce1dd6ef60945e5f1950a7813b2f66000a5f96
|
Provenance
The following attestation bundles were made for cnckit-0.1.0.tar.gz:
Publisher:
release-please.yml on jkkicks/cnckit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cnckit-0.1.0.tar.gz -
Subject digest:
92fb0c17650f8b97ce1e631eeaf55a026e208f48c4f024e7f23402853723d4f4 - Sigstore transparency entry: 731265554
- Sigstore integration time:
-
Permalink:
jkkicks/cnckit@a22fa5f50a81980702f4a94a4df31b8d90219ae8 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jkkicks
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@a22fa5f50a81980702f4a94a4df31b8d90219ae8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cnckit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cnckit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9d709afba136a737ee8aa902dc7277760401d10d2bd80aa0f3d5ba2f5dba94a
|
|
| MD5 |
3ea7a1b2c45838a91e4ce85a28bd9a8b
|
|
| BLAKE2b-256 |
7cdb05daabba48030c0458e9102fc4771796109aac36eead79c168d7a957c17e
|
Provenance
The following attestation bundles were made for cnckit-0.1.0-py3-none-any.whl:
Publisher:
release-please.yml on jkkicks/cnckit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cnckit-0.1.0-py3-none-any.whl -
Subject digest:
a9d709afba136a737ee8aa902dc7277760401d10d2bd80aa0f3d5ba2f5dba94a - Sigstore transparency entry: 731265555
- Sigstore integration time:
-
Permalink:
jkkicks/cnckit@a22fa5f50a81980702f4a94a4df31b8d90219ae8 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jkkicks
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@a22fa5f50a81980702f4a94a4df31b8d90219ae8 -
Trigger Event:
push
-
Statement type: