Mercurial > crates > nonstick
view README.md @ 73:ac6881304c78
Do conversations, along with way too much stuff.
This implements conversations, along with all the memory management
brouhaha that goes along with it. The conversation now lives directly
on the handle rather than being a thing you have to get from it
and then call manually. It Turns Out this makes things a lot easier!
I guess we reorganized things again. For the last time. For real.
I promise.
This all passes ASAN, so it seems Pretty Good!
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Thu, 05 Jun 2025 03:41:38 -0400 |
parents | d83623951070 |
children | c9fc7e6257d3 |
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)