Skip to content

Latest commit

 

History

History
399 lines (240 loc) · 19.6 KB

README.md

File metadata and controls

399 lines (240 loc) · 19.6 KB

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