Crates.io | tower-biscuit-auth |
lib.rs | tower-biscuit-auth |
version | 0.1.0 |
source | src |
created_at | 2022-05-06 03:12:47.872163 |
updated_at | 2022-05-06 03:12:47.872163 |
description | Integrating Biscuit authentication with the Tower ecosystem. |
homepage | https://github.com/vlmutolo/tower-biscuit-auth |
repository | https://github.com/vlmutolo/tower-biscuit-auth |
max_upload_size | |
id | 581420 |
size | 44,005 |
tower-biscuit-auth
Tower is an ecosystem of Rust libraries built to provide and enable reusable abstractions for request-reply-based services. From their GitHub:
Tower aims to make it as easy as possible to build robust networking clients and servers. It is protocol agnostic, but is designed around a request / response pattern. If your protocol is entirely stream based, Tower may not be a good fit.
Biscuit is a new set of standards centered around authorization. More specifically, Biscuit is:
A language to describe authorization patterns (Datalog-based).
A binary format for asymmetrically-signed bearer tokens (also allowing attenuation).
Implementations of those standards.
So Tower is all about providing abstractions over service architectuers, and Biscuits are a new pattern for scalable, flexible authorization for services.
This library is about exploring ways to expose Biscuit authorization as reusable Tower abstractions. We currently have a very crude first draft of an authorization layer where the downstream user provides ways to extract facts from the request type, and the layer blocks bad requests by being a tower::filter::Filter
.
Contributions are welcome, including suggestions for a complete redesign.