Crates.io | gearbox |
lib.rs | gearbox |
version | 1.0.4 |
source | src |
created_at | 2024-02-12 17:01:15.078641 |
updated_at | 2024-05-08 18:37:10.183534 |
description | Excessive tooling for Rust, boosting productivity and operations |
homepage | |
repository | https://github.com/nebula-technologies/gearbox |
max_upload_size | |
id | 1137167 |
size | 404,660 |
Gearbox is a versatile library that encompasses a wide array of functionalities, including networking, logging, railway-oriented programming extensions, and time management. Initially designed as a collection of utilities, the ultimate vision for Gearbox is to evolve into a highly optimized, standalone toolkit. The goal is to minimize external dependencies progressively, leading to a library that is lightweight and efficient. By doing so, Gearbox aims to be universally compatible, from embedded systems to WebAssembly (WASM) environments, all while maintaining simplicity and minimizing the need for boilerplate code. This development strategy positions Gearbox as a comprehensive solution for developers seeking to build efficient, scalable applications across a broad spectrum of platforms.
Category | Feature | use | Description |
---|---|---|---|
Common | TryDefault | gearbox::common::TryDefault | This is just a trait that is used internally in Gearbox but is defining a TryDefault Trait that return a Result<T,Self::Error> that can also be used in other systems. |
Logging | Tracing Log Formatter | gearbox::log::fmt::* | This is a custom subscriber for formatting logs when using the rust Tracing libaray |
Networking | hostname | gearbox::net::hostname | Get the hostname of the local machine. |
HTTP Request | gearbox::net::http::* | Send an HTTP request, this is currently an extension on top of Reqwest but simplifies the implementation of mTLS and payload signing. |
|
Error | ErrorTracer | gearbox::error::tracer::* | This is an error structure that builds a traceable stack of errors over time as errors are passed. It allows for later breaking down the error into a TypeId to define the encapsulated error for further operations on the error. This error type contains information about file, line, module path, and optional error_code with display and debug. Its an advanced alternative to std::error::Error that also works outside the std. This also comes with the macro Error!() which sets up the ErrorTracerExtInfo with all the needed information (file, line, module) |
Rail ErrorTracer | gearbox::rails::ext::map_err_tracer | this is a simplification for map_err for operating with the ErrorTracer, this allows for passing an Error!() or an ErrorTracerExtInfo for the collection of all the information |
|
Paths | Common Paths | gearbox::path::* | This is common paths under windows linux and more, eg under linux the config path is usually ~/.config/ |
Time | Time Stamps and more | gearbox::time::* | This is a timestamp system similar to Chrono, this is more like the library under PHP but handles times and time calculations, this library is used through out gearbox instead of Chrono |
( gearbox::log::* ) Clean up Log fmt/syslog, some of the code can be combined and cleaned up a bit better, also the formatter supports syslog, and bunyan, this should probably be cleared up a bit more, and separated better.
( gearbox::path::* ) current this system is mainly just exposing the dirs::* library, this should be removed.
( gearbox::* ) Remove usage for Vec or move usage of std::vec::Vec to another no-std library
Current version: 0.0.4
Some additional info here
License: MIT