26 releases

0.1.27 Feb 10, 2021
0.1.26 Feb 9, 2021
0.1.23 Jan 20, 2021
0.1.18 Dec 31, 2020
0.0.1 Dec 24, 2019

#770 in Filesystem

43 downloads per month
Used in 4 crates (3 directly)

MIT/Apache

270KB
4.5K SLoC

fungus

license-badge build codecov crates.io Minimum rustc

Rust utilities to reduce code verbosity

fungus is a collection of convenience functions I built up while working on other projects. I always seem to write this kind of boiler plate code to make working with a system more ergonomic and decided to make it reusable.

intents

fungas attempts to follow these intents:

  • Chaining - ensure Rust's functional chaining style isn't impeded by additions
  • Brevity - keep the naming as concise as possible while not infringing on clarity
  • Clarity - keep the naming as unambiguous as possible while not infringing on brevity
  • Performance - keep convenience functions as performant as possible while calling out significant costs
  • Speed - provide ergonomic functions similar to rapid development languages
  • Comfort - use naming and concepts in similar ways to popular languages

Usage

Requires rustc >= 1.30

This minimum rustc requirement is driven by the enhancements made to Rust's std::error::Error handling improvements

TBD

Contribute

Pull requests are always welcome. However understand that they will be evaluated purely on whether or not the change fits with my goals/ideals for the project.

Git-Hook

Enable the git hooks to have automatic version increments

cd ~/Projects/fungus
git config core.hooksPath .githooks

License

This project is licensed under either of:

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


Backlog

  • Update documentation

Changelog

  • 12/30/2020
    • Updating rustc minimum version explanation
  • 12/29/2020
    • Split Arch Linux functionality out to relic
  • 12/28/2020
    • Split git2 functionality out to skellige
  • 12/26/2020
    • Get fungus building and reporting with github actions
    • Split out git and arch work into another project
    • Implemented a better defer function
    • Port system utilities from witcher
    • Use fastrand rather than rand

Dependencies

~5–15MB
~190K SLoC