#posix #shell #glob


POSIX-compatible pattern matching for globbing

3 stable releases

1.1.0 Oct 21, 2022
1.0.1 Oct 1, 2022
1.0.0 Jul 2, 2022

#1905 in Command line utilities

35 downloads per month


2.5K SLoC


yash-fnmatch is a Rust library crate for performing glob-style pattern matching. This crate is part of yash, but can be used independently.

This crate recognizes all the features of the pattern matching notation as defined in POSIX. However, this crate does not (yet) support any locale-dependent behaviors.

yash-fnmatch at crates.io yash-fnmatch at docs.rs Build status


Add yash-fnmatch as a dependency in your Cargo.toml.

use yash_fnmatch::{Pattern, without_escape};
let p = Pattern::parse(without_escape("r*g")).unwrap();
assert_eq!(p.find("string"), Some(2..6));


MIT or Apache 2.0, at your option

Similar crates

yash-fnmatch is very similar to the fnmatch-regex crate in that both perform matching by converting the pattern to a regular expression. yash-fnmatch tries to support the POSIX specification as much as possible rather than introducing unique (non-portable) functionalities.


~63K SLoC