https://github.com/messense/nh3
Python binding to Ammonia HTML sanitizer Rust crate
https://github.com/messense/nh3
bleach sanitize-html
Last synced: 2 months ago
JSON representation
Python binding to Ammonia HTML sanitizer Rust crate
- Host: GitHub
- URL: https://github.com/messense/nh3
- Owner: messense
- License: mit
- Created: 2021-08-03T12:32:13.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-27T04:40:26.000Z (3 months ago)
- Last Synced: 2025-04-27T05:27:45.613Z (3 months ago)
- Topics: bleach, sanitize-html
- Language: Rust
- Homepage: https://nh3.readthedocs.io
- Size: 178 KB
- Stars: 287
- Watchers: 5
- Forks: 10
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# nh3

[](https://pypi.org/project/nh3)
[](https://nh3.readthedocs.io/en/latest/?badge=latest)Python bindings to the [ammonia](https://github.com/rust-ammonia/ammonia) HTML sanitization library.
## Installation
```bash
pip install nh3
```## Usage
See [the documentation](https://nh3.readthedocs.io/en/latest/).
## Performance
A quick benchmark showing that nh3 is about 20 times faster than the deprecated [bleach](https://pypi.org/project/bleach/) package.
Measured on a MacBook Air (M2, 2022).```ipython
Python 3.11.0 (main, Oct 25 2022, 16:25:24) [Clang 14.0.0 (clang-1400.0.29.102)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.9.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: import requests
In [2]: import bleach
In [3]: import nh3
In [4]: html = requests.get("https://www.google.com").text
In [5]: %timeit bleach.clean(html)
2.85 ms ± 22.8 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)In [6]: %timeit nh3.clean(html)
138 µs ± 860 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
```## License
This work is released under the MIT license. A copy of the license is provided in the [LICENSE](./LICENSE) file.