#type #data-type #reflection #irox #primitive

no-std irox-types

Enums and structs to describe Rust's basic type system

12 releases

new 0.5.1 Jan 26, 2025
0.5.0 Dec 14, 2024
0.4.4 Oct 30, 2024
0.4.2 Jun 28, 2024
0.3.0 Nov 29, 2023

#1104 in Rust patterns

Download history 7/week @ 2024-10-08 9/week @ 2024-10-15 159/week @ 2024-10-22 165/week @ 2024-10-29 23/week @ 2024-11-05 8/week @ 2024-11-12 20/week @ 2024-11-19 47/week @ 2024-11-26 18/week @ 2024-12-03 206/week @ 2024-12-10 35/week @ 2024-12-17 4/week @ 2024-12-24 5/week @ 2024-12-31 16/week @ 2025-01-07 5/week @ 2025-01-14 74/week @ 2025-01-21

100 downloads per month
Used in 13 crates (6 directly)

MIT/Apache

540KB
13K 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
      • fixedmath - Fixed Precision Math Primitives
      • 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? External Deps Status
irox-bits feature_std feature_alloc internal bits-vsn-shield bits-doc-shield
irox-build-rs std alloc deps_feat build-rs-vsn-shield build-rs-doc-shield
irox-carto feature_std alloc internal carto-vsn-shield carto-doc-shield
irox-cryptids no_std no_alloc internal csv-vsn-shield csv-doc-shield
irox-csv std alloc internal csv-vsn-shield csv-doc-shield
irox-derive-helpers std alloc deps_macro derive-helpers-vsn-shield derive-helpers-doc-shield
irox-egui-extras std alloc extdeps egui-extras-vsn-shield egui-extras-doc-shield
irox-enums no_std alloc deps_macro enums-vsn-shield enums-doc-shield
irox-enums_derive no_std alloc deps_macro enums_derive-vsn-shield enums_derive-doc-shield
irox-fixedmath no_std no_alloc internal fixedmath-vsn-shield fixedmath-doc-shield
irox-git-tools std alloc extdeps git-tools-vsn-shield git-tools-doc-shield
irox-gpx std alloc extdeps gpx-vsn-shield gpx-doc-shield
irox-influxdb_v1 std alloc extdeps influxdb_v1-vsn-shield influxdb_v1-doc-shield
irox-log feature_std alloc deps_log log-vsn-shield log-doc-shield
irox-networking std alloc extdeps networking-vsn-shield networking-doc-shield
irox-nmea0183 std alloc extdeps nmea0183-vsn-shield nmea0183-doc-shield
irox-progress std alloc deps_log progress-vsn-shield progress-doc-shield
irox-raymarine-sonar std alloc extdeps raymarine-sonar-vsn-shield raymarine-sonar-doc-shield
irox-sirf std alloc extdeps sirf-vsn-shield sirf-doc-shield
irox-stats no_std alloc internal stats-vsn-shield stats-doc-shield
irox-structs no_std feature_alloc deps_macro structs-vsn-shield structs-doc-shield
irox-structs_derive std alloc deps_macro structs_derive-vsn-shield structs_derive-doc-shield
irox-threading std alloc deps_log threading-vsn-shield threading-doc-shield
irox-time feature_std alloc internal time-vsn-shield time-doc-shield
irox-tools feature_std feature_alloc internal tools-vsn-shield tools-doc-shield
irox-types no_std alloc internal types-vsn-shield types-doc-shield
irox-units feature_std feature_alloc internal units-vsn-shield units-doc-shield
irox-winlocation-api std alloc extdeps winloc-api-vsn-shield winloc-api-doc-shield

Internal Dependency Tree

Supply chain vulnerabilities are a real concern these days. The following graph shows what crates can be used without external dependencies.

*Note: the macros from the log crate are the only exception, and are used only in the tree where indicated.

Dependency Tree

Dependencies

~215–640KB
~15K SLoC