MCPcopy Index your code
hub / github.com/diondokter/at-commands

github.com/diondokter/at-commands @v0.5.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.8 ↗ · + Follow
82 symbols 316 edges 5 files 46 documented · 56% updated 6mo agov0.5.8 · 2026-01-02★ 382 open issues

Browse by type

Functions 70 Types & classes 12
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AT Commands builder and parser for Rust #![no_std] crates.io Documentation

This crate can be used to build and parse at command style messages efficiently.

Help would be appreciated! Interested in new features, efficiency improvements and API improvements.

Usage

Builder:

use at_commands::builder::CommandBuilder;

let mut buffer = [0; 128];

// Make a query command
let result = CommandBuilder::create_query(&mut buffer, true)
    .named("+MYQUERY")
    .finish()
    .unwrap();

// Buffer now contains "AT+MYQUERY?"
// Copy or DMA the resulting slice to the device.

// Make a set command
let result = CommandBuilder::create_set(&mut buffer, false)
    .named("+MYSET")
    .with_int_parameter(42)
    .finish()
    .unwrap();

// Buffer now contains "+MYSET=42"
// Copy or DMA the resulting slice to the device.

Parser:

use at_commands::parser::CommandParser;

let (x, y, z) = CommandParser::parse(b"+SYSGPIOREAD:654,\"true\",-65154\r\nOK\r\n")
    .expect_identifier(b"+SYSGPIOREAD:")
    .expect_int_parameter()
    .expect_string_parameter()
    .expect_int_parameter()
    .expect_identifier(b"\r\nOK\r\n")
    .finish() 
    .unwrap();

// x = 654
// y = "true"
// z = -65154

License

Licensed under either of

  • Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 38
Function 32
Class 9
Interface 3

Languages

Rust100%

Modules by API surface

src/parser.rs37 symbols
src/builder.rs34 symbols
src/formatter.rs9 symbols
src/tuple_concat.rs2 symbols

For agents

$ claude mcp add at-commands \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page