Metadata-Version: 2.4
Name: pyjosers
Version: 0.1.0
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Security :: Cryptography
Requires-Dist: pytest>=8 ; extra == 'dev'
Requires-Dist: jwcrypto>=1.5.6 ; extra == 'dev'
Requires-Dist: sphinx>=8 ; extra == 'dev'
Requires-Dist: furo ; extra == 'dev'
Requires-Dist: maturin>=1.9,<2 ; extra == 'dev'
Requires-Dist: sphinx>=8 ; extra == 'docs'
Requires-Dist: furo ; extra == 'docs'
Provides-Extra: dev
Provides-Extra: docs
License-File: LICENSE
Summary: Rust-backed JOSE with a familiar jwcrypto-style Python API
License-Expression: BSD-2-Clause
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://pyjosers.readthedocs.org/
Project-URL: Repository, https://github.com/kushaldas/pyjosers

# pyjosers

Python JOSE (JWK, JWS, JWE, JWT) backed by jose-rs and PyO3, with a familiar
`jwcrypto`-style API. Requires Python 3.10+; building requires Rust 1.89+.

```python
from pyjosers import jwk, jwt
key = jwk.JWK.generate(kty="EC", crv="P-256")
token = jwt.JWT(header={"alg": "ES256"}, claims={"sub": "alice"})
token.make_signed_token(key)
verified = jwt.JWT(jwt=token.serialize(), key=key.public(), algs=["ES256"])
print(verified.claims)
```

Development:

```sh
uv venv
uv pip install -e '.[dev]'
uv run pytest
uv run sphinx-build -W --keep-going -b html docs docs/_build/html
```

See `docs/` for the API reference, algorithms, examples, build instructions,
and migration guide, including the Inmor admin call patterns. Compatibility is
explicitly scoped; this is not a complete replacement for every jwcrypto API.

