rust-fuzzylogic

A Rust crate that provides building blocks for authoring fuzzy inference systems. The project aims to make it easy to describe linguistic variables, membership functions, and rule bases while keeping room for experimentation with multiple aggregation operators and inference strategies. This Project is still WIP and any form of feedback or contribution is very much appreciated!

Project status

The repository currently focuses on laying down the module structure of the crate. At this stage, it implements Type‑1 fuzzy sets and a Mamdani inference engine. The project also plans to add Takagi–Sugeno inference for Type‑1 sets.

Several source files exist as stubs and will be fleshed out in future iterations. Even though the public API is not ready for consumption yet, the layout already highlights the intended responsibilities of each module:

Getting started

The library is published on crates.io: https://crates.io/crates/rust-fuzzylogic

You can import the library as a dependency in Cargo.toml from Git or crates.io:

crates.io:

[dependencies]
rust-fuzzylogic = "0.2.0"

Git (unreleased features):

[dependencies]
rust-fuzzylogic = { git = "https://github.com/joushuakento/rust-fuzzylogic" }

Documentation

You can find the documentation of the latest release here: https://docs.rs/rust-fuzzylogic/latest

Alternatively, If you are working from the unreleased version in the GitHub repository, you can run cargo doc locally to generate documentation.

You can see the changelog here: https://github.com/JoshuaKento/rust-fuzzylogic/blob/main/CHANGELOG.md

Development

If you would like to contribute, clone the repository and open it with your favourite editor:

git clone https://github.com/joushuakento/rust-fuzzylogic.git
cd rust-fuzzylogic

The crate targets Rust 1.74+ (edition 2021). Standard Cargo commands apply:

Feature flags

The crate is organised around a set of feature flags to enable or disable components at compile time:

Roadmap


This README will evolve alongside the code. Contributions, bug reports, and ideas are warmly welcome!