https://github.com/zeidlab/toolbox
A versatile and robust utility library designed to simplify common programming tasks, enhance error handling, and promote functional programming paradigms in C#. It provides a collection of tools and extensions that streamline operations such as null checks, error handling, and railway-oriented programming (ROP) sometimes known as "Result Pattern".
https://github.com/zeidlab/toolbox
error-handling exception-handling maybe-monad null-checking null-safety optional-parameters railway-oriented-programming result-object result-pattern
Last synced: 23 days ago
JSON representation
A versatile and robust utility library designed to simplify common programming tasks, enhance error handling, and promote functional programming paradigms in C#. It provides a collection of tools and extensions that streamline operations such as null checks, error handling, and railway-oriented programming (ROP) sometimes known as "Result Pattern".
- Host: GitHub
- URL: https://github.com/zeidlab/toolbox
- Owner: ZeidLab
- License: other
- Created: 2025-01-09T11:36:31.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-06-23T15:52:07.000Z (4 months ago)
- Last Synced: 2025-08-31T10:10:20.547Z (about 1 month ago)
- Topics: error-handling, exception-handling, maybe-monad, null-checking, null-safety, optional-parameters, railway-oriented-programming, result-object, result-pattern
- Language: C#
- Homepage:
- Size: 365 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
## 🤔 What is `ZeidLab.ToolBox` Library?
**ZeidLab.ToolBox** is a versatile and robust utility library designed to simplify common programming tasks, enhance
error handling, and promote functional programming paradigms in C#. It provides a collection of tools and extensions
that streamline operations such as null checks, error handling, task management, and railway-oriented programming (ROP)
sometimes known as "Result Pattern".### 🎁 Features
* **Unit Type:** A type representing the absence of a meaningful value, useful in functional programming.
* **Maybe Type:** A monadic type for handling optional values, similar to Option in functional languages.
* **Result Type:** A robust error-handling type for railway-oriented programming, allowing chaining of operations with
explicit success and failure states.
* **Error Handling:** Structured error handling with ResultError,supporting error codes, messages, and exceptions.
* **Asynchronous Support:** Comprehensive support for asynchronous operations with Result types.Inspired by [LanguageExt](https://github.com/louthy/language-ext), this library offers a more compact and user-friendly
alternative with extensive examples and tutorials.[^ Back To Top](#-what-is-zeidlabtoolbox-library)
## 📦 Installation
To use **ZeidLab.ToolBox** in your project, you can install it via NuGet:
```bash
dotnet add package ZeidLab.ToolBox
```
for more information please visit [ToolBox Package On NuGet](https://www.nuget.org/packages/ZeidLab.ToolBox).[^ Back To Top](#-what-is-zeidlabtoolbox-library)
## 📝 ChangeLogs
By each release we add new features and bug fixes. You can find the full change
log [here](https://github.com/ZeidLab/ToolBox/releases).[^ Back To Top](#-what-is-zeidlabtoolbox-library)
## 📖 Need Help? Read the Wiki and watch the Tutorials
There is a very detailed [Wiki](https://github.com/ZeidLab/ToolBox/wiki) for this library full of descriptions and
examples. also there is
a [YouTube channel with a dedicated video tutorials playlist](https://youtube.com/@zeidlabco?si=xAsUEwBoDNrJdmdK) for
this library.The main topics of this library are:
| Types and PageLink | Short Description |
|---------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
| [`Maybe`](https://github.com/ZeidLab/ToolBox/wiki/Maybe-Type) | A monadic type for handling optional values, similar to Option in functional languages. |
| [`Result`](https://github.com/ZeidLab/ToolBox/wiki/Result-Type) | A robust error-handling type for railway-oriented programming, allowing chaining of operations with explicit success and failure states. |
| [`Unit`](https://github.com/ZeidLab/ToolBox/wiki/Unit-Type) | A type representing the absence of a meaningful value, useful in functional programming. |
| [`ResultError`](https://github.com/ZeidLab/ToolBox/wiki/ResultError-Type) | Structured error handling with supporting error codes, messages, and exceptions. |
| [`Try`](https://github.com/ZeidLab/ToolBox/wiki/Try-And-TryAsync-Type) | A delegate to handel the unhandled exceptions in an efficient and expressive way in a synchronous flow of functions. |
| [`TryAsync`](https://github.com/ZeidLab/ToolBox/wiki/Try-And-TryAsync-Type) | A delegate to handel the unhandled exceptions in an efficient and expressive way in a synchronous flow of functions. |
| [Extension Methods](https://github.com/ZeidLab/ToolBox/wiki/Result-Extension-Methods) | Methods to interact with `Result` types |[^ Back To Top](#-what-is-zeidlabtoolbox-library)
## ⭐️ Star and Follow
Star this repository and follow me on GitHub to stay informed about new releases and updates. Your support fuels this
project's growth
## 💡 Love My Work? Support the Journey!
If my content adds value to your projects, consider supporting me via crypto.
- **Bitcoin:** bc1qlfljm9mysdtu064z5cf4yq4ddxgdfztgvghw3w
- **USDT(TRC20):** TJFME9tAnwdnhmqGHDDG5yCs617kyQDV39Thank you for being part of this community—let’s build smarter, together
[^ Back To Top](#-what-is-zeidlabtoolbox-library)
## 🤝 Contributions are welcome!
Please feel free to submit issues, feature requests, or pull requests.
1. [X] Fork the repository.
2. [X] Create a new branch for your feature or bugfix.
3. [X] Commit your changes.
4. [X] Push your branch and submit a pull request.[^ Back To Top](#-what-is-zeidlabtoolbox-library)
## License
This project is licensed under the MIT License. See the [LICENSE](./LICENSE.txt) file for details.
[^ Back To Top](#-what-is-zeidlabtoolbox-library)