21 releases

0.5.0 Apr 28, 2024
0.5.0-dev Oct 31, 2023
0.4.9 Nov 16, 2022
0.3.2 Dec 29, 2021
0.3.0-alpha.1 Nov 28, 2020

#405 in Authentication

Download history 397/week @ 2024-03-13 325/week @ 2024-03-20 166/week @ 2024-03-27 393/week @ 2024-04-03 368/week @ 2024-04-10 372/week @ 2024-04-17 609/week @ 2024-04-24 1322/week @ 2024-05-01 1101/week @ 2024-05-08 1159/week @ 2024-05-15 1042/week @ 2024-05-22 655/week @ 2024-05-29 788/week @ 2024-06-05 403/week @ 2024-06-12 606/week @ 2024-06-19 560/week @ 2024-06-26

2,503 downloads per month
Used in 3 crates

MPL-2.0 license

19K SLoC


WebAuthn is a modern approach to hardware based authentication, consisting of a user with an authenticator device, a browser or client that interacts with the device, and a server that is able to generate challenges and verify the authenticator's validity.

This library is the client half of the authenticator process, performing the steps that would normally be taken by a web browser. Given a challenge from a Webauthn server, this library can interface with a CTAP2 device and transform the response to a Webauthn registration or assertion (authentication).


Building docs

This library contains extensive documentation in rustdoc format. You can build this with:

cargo doc --no-deps --document-private-items

This library includes many references to module-private items to explain how protocols work, so we use --document-private-items.

By default, this won't add any features, so you'll want to add them with --features ..., or use --all-features (which pulls in many dependencies).

To build all docs in a way that annotates which modules and functions are avaliable with which features:

  1. Install Rust nightly:

    rustup toolchain install nightly
  2. Build the documentation with:

    RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --no-deps --document-private-items

    Or with PowerShell (Windows):

    $Env:RUSTDOCFLAGS = "--cfg docsrs"
    cargo +nightly doc --no-deps --document-private-items


~847K SLoC