async-gcode

Crates.ioasync-gcode
lib.rsasync-gcode
version0.3.0
sourcesrc
created_at2020-08-15 23:26:50.329543
updated_at2022-08-13 16:06:21.2561
descriptionAn async gcode parser for no_std targets.
homepage
repositoryhttps://github.com/ithinuel/async-gcode
max_upload_size
id277079
size369,058
cargo-geiger admins (github:rust-secure-code:cargo-geiger-admins)

documentation

README

GCode Parser

This crate aims at providing a gcode parser to the rusty printer project (and other if it can fit).

The minimal footprint is achieved with all features disabled and is in the order of ~80B of RAM and around 2kB of Flash memory. The typical set of features ["parse-trailing-comment", "parse-checksum", "optional-value"] has a footprint of around 4kB of flash memory for around 80B of RAM. Finally with all features, the memory footprint reaches around 7kB in flash and around 170B in RAM.

Features

  • std : Enabled by default
  • parse-comments : enables the parser to return GCode::Comment(String); requires an allocator.
  • parse-trailing-comment: allows line to end with a ; comment.
  • parse-checksum : Enables the use of xorsum.
  • parse-parameters : Enables the use of # parameters ; requires an allocator. If string-value is enabled then parameters may use string index. If optional-value is enabled then parameters value may be omitted but NOT the indices.
  • parse-expressions : Enables parsing infix expressions ; requires an allocator.
  • optional-value : Allows to omit in RealValue in word and parameter value positions. Parameter indices cannot be omitted nor can be literals in expressions.
  • string-value : Allows RealValue to be a string. Any character preceded with \ will be used as is (useful for ", ) or new line).

Design

Constraints

  • No recursion.
  • Reduced RAM footprint
  • Reduced ROM footprint
Commit count: 23

cargo fmt