Mercurial > crates > nonstick
view README.md @ 64:bbe84835d6db v0.0.5
More organization; add lots of docs.
- moves `PamHandle` to its own module, since it will be used
by both modules and clients.
- adds a ton of documentation to the `PamModule` trait
and reorders methods to most-interesting-first.
- adds more flag values from pam_modules.h.
- other misc cleanup.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Thu, 22 May 2025 01:52:32 -0400 |
parents | d83623951070 |
children |
line wrap: on
line source
# 🍳 nonstick Nonstick lets you use PAM (Pluggable Authentication Modules) from Rust without getting stuck in unsafe code. ## Status This is currently very incomplete. It only provides functionality for developing your own PAM authentication module (i.e., a backend that PAM calls to authenticate a user or do something similar). A very immature implementation of the PAM Conversation structure is gated behind the `experimental` feature. At the moment, [Linux-PAM](https://github.com/linux-pam/linux-pam) is the only supported PAM implementation. *If you’re looking for a library to implement a PAM client* (i.e., something that authenticates using PAM), consider the [`pam` crate](https://crates.io/crates/pam). APIs are likely to break before v0.1.0, and thereafter should stabilize to an eventual 1.0 release. Goals include: - Bindings for PAM clients. - A robust and mature implementation of Conversation. - Support for non–Linux-PAM implementations. ## Credits This is a direct fork of [Anthony Nowell](http://anowell.com/)’s [`pam-rs`/`pam-bindings` crate](https://crates.io/crates/pam-bindings). `pam-rs` was in turn inspired by: - [`rust-pam` by tozny](https://github.com/tozny/rust-pam) - [`pam_groupmap` by ndenev](https://github.com/ndenev/pam_groupmap) - [`pam-http` by beatgammit](https://github.com/beatgammit/pam-http)