#irox #meta-programming #reflection

macro irox-structs_derive

Derivable impls of the traits in irox-structs

8 releases

0.3.2 Jun 28, 2024
0.3.1 Apr 21, 2024
0.2.3 Nov 29, 2023
0.2.2 Oct 30, 2023
0.1.0 Sep 5, 2023

#17 in #metaprogramming

23 downloads per month
Used in 7 crates (2 directly)

MIT/Apache

390KB
9K SLoC

Iron Oxide (IROX) Libraries

A collection of (hopefully) useful crates written in Rust.

MIT Apache Maintenance GitHub Workflow Status (with event) Crates.io docs.rs

Contributor Covenant Semver2.0 ConvCommits unsafe forbidden

Current Modules & Organization:

  • data-formats - Specific data format encoders & decoders
    • csv - Comma Separated Values encoder/decoder, inspired by python's csv module
    • gpx - GPX GPS file format reader/writer
    • nmea0183 - GPS NMEA-0183 encoder/decoder
    • raymarine-sonar - Raymarine SDF Sonar Converter
    • sirf - GPS Binary SiRF encoder/decoder
  • interfaces - Interfaces, Transports, and APIs for external tools
  • irox - Aggregator module
  • libraries - Rust 'library' crates, usually without binaries
    • bits - Bits & Bobs. No-std/No-alloc bit/byte manipulation of streams
    • build-rs - Compile-time build metadata injection inspired by shadow-rs
    • carto - Cartographic & Geospatial tools
    • derive-helpers - Helper traits & functions for the proc_macro crate to aid in writing less complex derive macros
    • egui-extras - Extra stuff for the wonderful egui crate
    • enums - Traits for better Enumerated Types
    • enums_derive - Derivable impls of the traits in irox-enums
    • git-tools - Tools and wrappers to help with GitOps
    • log - Basic console and file logging
    • networking - Networking tools
    • progress - An ecosystem for displaying progress, either in a UI or on the terminal.
    • stats - Mathematics & Statistics tools
    • structs - Traits for Struct Types - linearly serialized big endian bytes
    • structs_derive - Derivable impls of the traits in irox-structs
    • threading - Blocking and Asynchronous Threading Tools
    • time - A date & time library that aims for ease of use based on the Proleptic Gregorian Calendar.
    • tools - Dumping ground for stuff that should have been in std
    • types - Enums and structs to describe Rust's basic type system
    • units - Physical Units, Quantities, & Reference Frames
  • tools - Rust 'binary' crates, mostly just binaries that depend on crates in libraries
    • gpsd - Implementation of GPSd in Rust, with support for windows targets!

Version Status

Crate no_std? no_alloc? Status
irox-bits no_std no_alloc bits-vsn-shield bits-doc-shield
irox-build-rs std alloc build-rs-vsn-shield build-rs-doc-shield
irox-carto std alloc carto-vsn-shield carto-doc-shield
irox-csv std alloc csv-vsn-shield csv-doc-shield
irox-derive-helpers std alloc derive-helpers-vsn-shield derive-helpers-doc-shield
irox-egui-extras std alloc egui-extras-vsn-shield egui-extras-doc-shield
irox-enums no_std alloc enums-vsn-shield enums-doc-shield
irox-enums_derive no_std alloc enums_derive-vsn-shield enums_derive-doc-shield
irox-git-tools std alloc git-tools-vsn-shield git-tools-doc-shield
irox-gpx std alloc gpx-vsn-shield gpx-doc-shield
irox-influxdb_v1 std alloc influxdb_v1-vsn-shield influxdb_v1-doc-shield
irox-log std alloc log-vsn-shield log-doc-shield
irox-networking std alloc networking-vsn-shield networking-doc-shield
irox-nmea0183 std alloc nmea0183-vsn-shield nmea0183-doc-shield
irox-progress std alloc progress-vsn-shield progress-doc-shield
irox-raymarine-sonar std alloc raymarine-sonar-vsn-shield raymarine-sonar-doc-shield
irox-sirf std alloc sirf-vsn-shield sirf-doc-shield
irox-stats no_std alloc stats-vsn-shield stats-doc-shield
irox-structs std alloc structs-vsn-shield structs-doc-shield
irox-structs_derive std alloc structs_derive-vsn-shield structs_derive-doc-shield
irox-threading std alloc threading-vsn-shield threading-doc-shield
irox-time feature_std alloc time-vsn-shield time-doc-shield
irox-tools feature_std alloc tools-vsn-shield tools-doc-shield
irox-types std alloc types-vsn-shield types-doc-shield
irox-units no_std no_alloc units-vsn-shield units-doc-shield
irox-winlocation-api std alloc winloc-api-vsn-shield winloc-api-doc-shield

Dependencies

~335–790KB
~18K SLoC