pure-sasl
Pure Python client SASL implementation
What it is and what it does
pure-sasl is a pure Python implementation of the SASL (Simple Authentication and Security Layer) protocol for client-side authentication. It handles the negotiation and challenge-response exchange required to authenticate a client to a server using one of several supported mechanisms. The library manages the state machine of SASL authentication, allowing you to feed server challenges into the client and receive responses to send back, and provides optional message wrapping and unwrapping for integrity and confidentiality after authentication succeeds.
The package has no external runtime dependencies and installs as a wheel, making it straightforward to add to any Python project. However, it has been abandoned since 2019-10-14 with no active maintenance, so it is best suited for legacy systems or environments where you control the authentication mechanisms and can accept the risk of unpatched issues.
Use it for:
- Authenticate to SASL-enabled servers (e.g., XMPP, SMTP, LDAP) from a Python client application.
- Implement custom authentication flows in messaging or protocol libraries that require SASL support.
- Build a pure-Python alternative to system SASL libraries for environments where external dependencies are constrained.
- Wrap or unwrap messages for integrity protection after SASL authentication completes.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pure-sasl is a pure Python client-side SASL implementation supporting ANONYMOUS, PLAIN, EXTERNAL, CRAM-MD5, DIGEST-MD5, and GSSAPI mechanisms for authentication negotiation.
No. The package is abandoned (last release 2019-10-14, last commit 2023-06-25) with no active maintenance. While it has no known vulnerabilities and low install friction, the lack of updates means it will not receive security patches or compatibility fixes for modern Python versions. Use only if you are maintaining legacy code that already depends on it; for new projects, choose an actively maintained alternative.
Install
pure-sasl on PyPI
pip
pip install pure-sasluv
uv add pure-saslpoetry
poetry add pure-saslInstalling pure-sasl
Before you install
Installation is low-friction with no runtime dependencies. However, the package is abandoned as of 2019-10-14 with no commits since 2023-06-25, meaning security updates and compatibility fixes are unlikely.
License in practice
MIT license is permissive and imposes minimal restrictions; you can use, modify, and distribute the package freely provided you retain the license notice.
Quickstart
from pure-sasl import SASLClient
sasl = SASLClient('somehost', 'protocol')
available_mechs = ['PLAIN', 'ANONYMOUS']
sasl.choose_mechanism(available_mechs)
response = sasl.process(challenge_bytes)
The package declares support for Python 2.6–3.6 in its classifiers; compatibility with modern Python versions is unverified.
Verify before relying
- Whether the package works reliably with Python versions after 3.6.
- Current security posture of the SASL mechanisms implemented, particularly DIGEST-MD5 and CRAM-MD5.
- Whether GSSAPI support requires additional system libraries or configuration.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 2,496 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 7,797,919/month — #1,694 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pure_sasl-0.6.2-py2-none-any.whl
Keywords: sasl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pure-transportProvides a Thrift transport for PyHive…
permissive · top 15,000 on PyPI
scrampScramp implements the SCRAM authentication…
permissive · top 1,000 on PyPI
tlslite-ngPure Python implementation of SSL/TLS protocols…
copyleft · top 15,000 on PyPI
thrift-saslImplements SASL authentication transports for…
permissive · top 5,000 on PyPI
gssapiPython-GSSAPI wraps the GSSAPI C libraries to…
permissive · top 5,000 on PyPI
winkerberosProvides native Kerberos client authentication…
permissive · top 5,000 on PyPI
requests-gssapiAdds GSSAPI/Kerberos authentication support to…
permissive · top 15,000 on PyPI
pyspnegoHandles SPNEGO, NTLM, Kerberos, and CredSSP…
permissive · top 1,000 on PyPI
pykerberosProvides a Python wrapper for Kerberos (GSSAPI)…
permissive · top 5,000 on PyPI