Anchor, a Rust Klipper protocol implementation

Related tags

Command-line anchor
Overview

Anchor

Anchor is an implementation of the Klipper protocol.

You can use Anchor to create custom Klipper MCUs. It's written in Rust and provides only the protocol implementation, giving you full control over how you want to tie the protocol handling in to your program. You can even implement a Klipper MCU that runs over a PTY, like the Linux klipper_mcu program.

This repo contains the following folders:

  • anchor
    The runtime support library for Anchor. It includes all the functionality that is used during runtime.

  • anchor_codegen
    The Klipper protocol requires exchanging an initial data dictionary, and command IDs need to be hooked up. anchor_codegen creates this data dictionary, message handlers, serializers, etc. and generates a Rust module that will be included by the klipper_generate_config macro in your project.

  • rp2040_demo
    A simple demo showing how one could integrate Anchor in an rp2040 project, communicating over USB.

  • esp32c3_demo
    A simple demo showing how one could integrate Anchor in an esp32c3 project, communicating over USB.

  • testjig
    A development tool and example of how to use Anchor for implementing a very simple PTY based MCU that can talk to Klipper.

  • anchor_macro
    Implements the proc_macros needed by anchor. You shouldn't have to mess with this.

Anchor powers the Beacon3D Surface Scanner.

Documentation

Documentation can be found here.

Licensing

Anchor is licensed under the MIT license, which means you can do pretty much whatever you want with it. Please see LICENSE.txt for more information.

Acknowledgements

This project is in no way endorsed by the Klipper project. Please do not direct any support requests to the Klipper project.

You might also like...
An interactive shell environment for exploring the p2panda protocol
An interactive shell environment for exploring the p2panda protocol

An interactive shell environment for exploring the p2panda protocol. Uses a mock node and clients to simulate network logic.

A TUI front-end for the Debug Adapter Protocol.

Pesticide A TUI front-end for the Debug Adapter Protocol. Motivation I am an avid kakoune user. Kak is a very niche text editor with few users. As suc

Multi-protocol CLI download accelerator
Multi-protocol CLI download accelerator

dlrs dlrs is a multi-protocol download tool for the command line. Written in Rust, dlrs splits your downloads to speed them up where possible. Feature

A SIMD implementation of Keccak256 for aarch64, forked from Remco Bloeman's Goldilocks K12 implementation.

keccak256-aarch64 Warning This crate was forked from real cryptographers (Goldilocks by Remco Bloeman), by not a real cryptographer. Do not use this k

Readline Implementation in Rust

RustyLine Readline implementation in Rust that is based on Antirez' Linenoise Supported Platforms Unix (tested on FreeBSD, Linux and macOS) Windows cm

Rust implementation of the termbox library

Rustbox Rustbox is a Rust implementation of termbox. Currently, this is just a wrapper of the C library by nsf, though my plan is to convert it to be

A very fast implementation of tldr in Rust
A very fast implementation of tldr in Rust

A very fast implementation of tldr in Rust: Simplified, example based and community-driven man pages.

A compact implementation of connect four written in rust.
A compact implementation of connect four written in rust.

connect-four A compact implementation of connect four written in rust. Run the game At the moment there no pre-built binaries - but you can build it l

Baby's first Rust CLI project. Basic implementation of grep. Written in about 100 SLOC.

minigrep Coding project from Chapter 12 of the The Rust Programming Language book. Usage Compile and run as so minigrep QUERY FILENAME QUERY being the

Owner
Annex-Engineering
We do cool 3DP things
Annex-Engineering
An anchor CPI client for the SPL token lending program

anchor-lending anchor-lending is an anchor CPI client for any program that implements or extends the instruction interface found in the spl token lend

Rohan Kapur 11 Oct 24, 2022
Escrow program implemented in Anchor

Anchor Example: Escrow Program See this doc for more implementation details Overview Since this program is extended from the original Escrow Program,

ironaddicteddog 141 Dec 26, 2022
Ah Fuck Anchor

Ah Fuck Anchor

Deep Mehta 24 Dec 14, 2022
Generates an Anchor CPI crate from a JSON IDL.

anchor-gen Generates a crate for cross-program invocations to an Anchor program from a JSON IDL. Usage In a new crate, write: anchor_gen::generate_cpi

Saber 44 Jul 3, 2023
A quality of life package for Anchor.

anchor-cereal A quality of life package for Anchor made to support the Solana ecosystem. Currently, it allows you to serialize a struct containing an

✨ amelia chen ✨ 24 Feb 9, 2023
Rust client-side implementation of the rock usb protocol

Utility crates to interact with Rockchip devices Rockchip SoCs implement a custom USB protocol when starting in a special recovery mode (sometimes cal

Collabora 12 Mar 14, 2023
Coinkite Tap Protocol implementation for use with SATSCARD™ and TAPSIGNER™ products

rust-cktap A Rust implementation of the Coinkite Tap Protocol for use with SATSCARD and TAPSIGNER products. Desktop Example Prerequisites USB PCSC NFC

Steve Myers 6 Feb 13, 2023
Nostr protocol implementation, SDK and FFI

Searchnos: an experimental implementation of NIP-50 This is a relay-like bridge server that provides a Nostr full-text search capability by using Elas

SAGE 8 Jul 2, 2023
Neptune-core is the reference implementation for the Neptune protocol

Neptune Core Neptune-core is the reference implementation for the Neptune protocol. The implementation is not complete yet, but already supports many

Neptune 6 Jul 10, 2023
A fast, efficient emulator for the osu! Bancho protocol written in Rust

rosu. A fast, efficient emulator for the osu! Bancho protocol written in Rust. Setup Git clone rosu, setup your nginx (example config is in the ext fo

James 2 Sep 19, 2022