Mercurial > crates > nonstick
view README.md @ 59:3f4a77aa88be
Fix string copyting and improve error situation.
This change is too big and includes several things:
- Fix copying strings from PAM by fixing const and mut on pam funcs.
- Improve error enums by simplifying conversions and removing
unnecessary and ambiguous "success" variants.
- Make a bunch of casts nicer.
- Assorted other cleanup.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Wed, 21 May 2025 00:27:18 -0400 |
parents | 2a5c83d04b93 |
children | d83623951070 |
line wrap: on
line source
# 🍳 nonstick Nonstick lets you use PAM (Pluggable Authentication Modules) from Rust without having to deal with icky unsafe code. ## Status It 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). 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). At the moment, [Linux-PAM](https://github.com/linux-pam/linux-pam) is the only supported PAM implementation. An earlier version of this suggested that I would try not to break APIs. This was optimistic on my part; it is likely APIs will break before v0.1.0, after which I _will_ try to break things _less_. Goals include: - Bindings for PAM clients. - 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)