Skip to main content

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cnckit-0.2.0.tar.gz (66.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cnckit-0.2.0-py3-none-any.whl (39.4 kB view details)

Uploaded Python 3

File details

Details for the file cnckit-0.2.0.tar.gz.

File metadata

  • Download URL: cnckit-0.2.0.tar.gz
  • Upload date:
  • Size: 66.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cnckit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 77933985a7bcf5f7759f3c140181209ae1233ecfb6a2a542160ef33573f2ec43
MD5 def20f1c86ff07446f7bafe38a20ee5e
BLAKE2b-256 fa8a862535833ac4e77a4977cd9e4c63641f55c975041a0deea678c79bec2705

See more details on using hashes here.

Provenance

The following attestation bundles were made for cnckit-0.2.0.tar.gz:

Publisher: release-please.yml on jkkicks/cnckit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cnckit-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: cnckit-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 39.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cnckit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 00cc29838def745211a80c78852e65b78d9860865b7138981b296113fa7184ca
MD5 03f12e4bf7a8d2423a421bbc30282fec
BLAKE2b-256 69ce675d3b100bef23d49282b325198b79673316f03f0db25fd40b3462753e69

See more details on using hashes here.

Provenance

The following attestation bundles were made for cnckit-0.2.0-py3-none-any.whl:

Publisher: release-please.yml on jkkicks/cnckit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page