High-performance PDF generation from HTML/CSS/Tailwind — Rust-powered Python library
Project description
FerroPDF
High-performance PDF generation from HTML, CSS, and Tailwind templates.
FerroPDF is a Rust-powered PDF rendering engine with a clean Python API. Complex reports render in under 6ms.
Features
- Blazing fast — Rust core engine, <100ms for simple documents
- Full HTML/CSS support — HTML5 parsing, CSS3 styling, flexbox, tables
- Tailwind CSS — Use utility classes directly, no build step required
- Template rendering — Jinja2 templates with context variables
- Django integration — Template rendering, HttpResponse helpers, CBV mixin, middleware
- FastAPI integration — PdfResponse, async rendering, streaming support
- Parallel batch rendering — Generate hundreds of PDFs concurrently via Rayon
- Minimal memory footprint — Efficient Rust memory management
- Custom fonts — Register and use TrueType/OpenType fonts
- Page management — Headers, footers, page numbers, page breaks
Quick Start
Installation
pip install ferropdf
Basic Usage
from fastpdf import render_pdf, render_pdf_to_file, RenderOptions
# Render HTML to PDF bytes
pdf_bytes = render_pdf("<h1>Hello World</h1>")
# Save to file
render_pdf_to_file("<h1>Hello</h1>", "output.pdf")
# With custom options
options = RenderOptions(
page_size="A4",
margin_top=20.0,
title="My Document",
author="FerroPDF",
)
pdf_bytes = render_pdf(html, options=options)
With CSS
html = "<h1>Styled Document</h1><p class='intro'>Hello!</p>"
css = """
h1 { color: #1a56db; border-bottom: 2px solid #1a56db; }
.intro { font-size: 14pt; color: #6b7280; }
"""
pdf_bytes = render_pdf(html, css=css)
Tailwind CSS
html = """
<div class="p-8">
<h1 class="text-3xl font-bold text-blue-600 mb-4">Invoice</h1>
<p class="text-gray-600">Generated with Tailwind CSS</p>
</div>
"""
pdf_bytes = render_pdf(html, options=RenderOptions(tailwind=True))
Template Rendering
from fastpdf import render_pdf_from_template
pdf_bytes = render_pdf_from_template(
"invoice.html",
context={
"customer": "Acme Corp",
"items": [{"name": "Widget", "price": 9.99}],
"total": 9.99,
},
template_dir="templates/",
)
Engine (Shared Configuration)
from fastpdf import PdfEngine, RenderOptions
engine = PdfEngine(
template_dir="templates/",
default_options=RenderOptions(page_size="A4", tailwind=True),
)
# Register custom fonts
engine.register_font("CustomFont", "/path/to/font.ttf")
# Render multiple documents
doc1 = engine.render("<h1>Document 1</h1>")
doc2 = engine.render_template("report.html", context={"data": data})
doc1.save("doc1.pdf")
doc2.save("doc2.pdf")
Batch Rendering (Parallel)
from fastpdf import batch_render
items = [
{"html": f"<h1>Invoice #{i}</h1>"} for i in range(100)
]
pdf_list = batch_render(items) # Rendered in parallel via Rayon
Django Integration
# views.py
from fastpdf.contrib.django import render_to_pdf_response, PdfView
# Function-based view
def invoice_pdf(request, pk):
invoice = get_object_or_404(Invoice, pk=pk)
return render_to_pdf_response(
request,
"invoices/invoice.html",
{"invoice": invoice},
filename="invoice.pdf",
)
# Class-based view
class ReportPdfView(PdfView, DetailView):
model = Report
template_name = "reports/detail.html"
pdf_filename = "report.pdf"
Django Middleware
Add automatic PDF conversion with ?format=pdf:
# settings.py
MIDDLEWARE = [
...
"fastpdf.contrib.django.PdfMiddleware",
]
# settings.py (optional)
FERROPDF = {
"DEFAULT_PAGE_SIZE": "A4",
"DEFAULT_MARGIN": 15.0,
"TAILWIND": True,
}
FastAPI Integration
from fastapi import FastAPI
from fastpdf.contrib.fastapi import PdfResponse, render_pdf_async
app = FastAPI()
@app.get("/invoice/{id}")
async def get_invoice(id: int):
html = f"<h1>Invoice #{id}</h1>"
return PdfResponse(html, filename=f"invoice-{id}.pdf")
@app.get("/report")
async def get_report():
# Async rendering (non-blocking)
pdf_bytes = await render_pdf_async("<h1>Report</h1>")
return Response(content=pdf_bytes, media_type="application/pdf")
API Reference
render_pdf(html, *, css=None, options=None) → bytes
Render HTML string to PDF bytes.
render_pdf_to_file(html, path, *, css=None, options=None) → PdfDocument
Render HTML and save to file. Returns PdfDocument for inspection.
render_pdf_from_template(template_name, *, context=None, template_dir=None, css=None, options=None) → bytes
Render a Jinja2 template to PDF bytes.
batch_render(items, *, options=None, parallel=True) → list[bytes]
Render multiple documents in parallel. Each item is a dict with "html" and optional "css" keys.
RenderOptions
| Parameter | Type | Default | Description |
|---|---|---|---|
page_size |
str | tuple |
"A4" |
Page size name or (width_mm, height_mm) |
orientation |
str |
"portrait" |
"portrait" or "landscape" |
margin_top |
float |
10.0 |
Top margin in mm |
margin_right |
float |
10.0 |
Right margin in mm |
margin_bottom |
float |
10.0 |
Bottom margin in mm |
margin_left |
float |
10.0 |
Left margin in mm |
title |
str | None |
None |
PDF title metadata |
author |
str | None |
None |
PDF author metadata |
tailwind |
bool |
False |
Enable Tailwind CSS resolution |
base_path |
str | None |
None |
Base path for asset resolution |
header_html |
str | None |
None |
Running header HTML |
footer_html |
str | None |
None |
Running footer HTML |
PdfDocument
| Method/Property | Description |
|---|---|
.to_bytes() |
Get raw PDF bytes |
.save(path) |
Write to file |
.page_count |
Number of pages |
.title |
Document title |
PdfEngine
| Method | Description |
|---|---|
.render(html, *, css, options) |
Render HTML to PdfDocument |
.render_template(name, *, context, css, options) |
Render Jinja2 template |
.render_to_file(html, path, *, css, options) |
Render and save |
.batch_render(items, *, options, parallel) |
Parallel batch render |
.register_font(name, path) |
Register custom font |
Architecture
┌─────────────────────────────────────────────────┐
│ Python API │
│ render_pdf() · PdfEngine · Django · FastAPI │
├─────────────────────────────────────────────────┤
│ PyO3 Bindings Layer │
├─────────────────────────────────────────────────┤
│ Rust Core Engine │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ HTML │ │ CSS │ │ Tailwind │ │
│ │ Parser │ │ Parser │ │ Resolver │ │
│ │(html5ever)│ │ (custom) │ │ (custom) │ │
│ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ Style Resolution │ │
│ │ (selector matching, inheritance) │ │
│ └────────────────┬─────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ Layout Engine │ │
│ │ (block, inline, flex, table, pagination) │ │
│ └────────────────┬─────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ Renderer (Paint Commands) │ │
│ └────────────────┬─────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ PDF Generator (printpdf) │ │
│ └──────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
Performance
Criterion.rs benchmarks (statistical)
Measured with Criterion.rs — 100 samples per benchmark, 95% confidence intervals. Machine: Intel Core i5-10210U (4C/8T, 1.6–4.2 GHz), 24 GB RAM, Debian 12.
Full pipeline (HTML+CSS → PDF)
| Document | Time (95% CI) |
|---|---|
Simple HTML (<h1> + <p>) |
160–167 µs |
| Styled HTML (headings, lists, CSS) | 481–543 µs |
| Complex report (tables, metrics, multi-section) | 1.32–1.34 ms |
Table scaling
| Rows | Time (95% CI) |
|---|---|
| 10 rows | 874 µs – 1.05 ms |
| 25 rows | 1.51–1.57 ms |
| 50 rows | 3.23–3.81 ms |
| 100 rows | 6.14–6.51 ms |
Individual pipeline stages (complex report)
| Stage | Time (95% CI) |
|---|---|
| HTML parsing | 102–113 µs |
| CSS parsing | 8.0–8.7 µs |
| Layout engine | 502–555 µs |
| Paint commands | 47.7–49.3 µs |
| PDF generation | 735–837 µs |
Tailwind
| Operation | Time (95% CI) |
|---|---|
| Extract classes | 85–88 µs |
| Resolve classes → CSS | 47–52 µs |
Reproduce locally:
cd rust-engine && cargo bench --bench render_bench
The CI also runs benchmarks on every push — see the Benchmarks workflow.
Python-level benchmarks
Run python benchmarks/benchmark.py for end-to-end measurements including PyO3 overhead.
Development
Prerequisites
- Rust 1.70+ (for the engine)
- Python 3.8+
- maturin (
pip install maturin)
Building
# Development build
maturin develop
# Release build
maturin build --release
# Run Rust tests
cd rust-engine && cargo test
# Run Python tests
pytest tests/python/
Project Structure
ferropdf/
├── rust-engine/ # Rust core engine
│ ├── Cargo.toml
│ └── src/
│ ├── lib.rs # Module entry point
│ ├── bindings.rs # PyO3 Python bindings
│ ├── error.rs # Error types
│ ├── html/ # HTML5 parser (html5ever)
│ ├── css/ # CSS parser & value types
│ ├── layout/ # Box model, layout, pagination
│ ├── fonts/ # Font cache & management
│ ├── images/ # Image loading & caching
│ ├── tailwind/ # Tailwind CSS resolver
│ ├── renderer/ # Paint command generation
│ └── pdf/ # PDF file generation (printpdf)
├── python-wrapper/ # Python package
│ └── fastpdf/
│ ├── __init__.py # Public API
│ ├── core.py # Core wrapper classes
│ ├── utils.py # Utility helpers
│ └── contrib/
│ ├── django.py # Django integration
│ └── fastapi.py # FastAPI integration
├── examples/ # Usage examples
├── benchmarks/ # Performance benchmarks
├── tests/ # Test suites
└── pyproject.toml # Build configuration
License
MIT OR Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ferropdf-0.1.0.tar.gz.
File metadata
- Download URL: ferropdf-0.1.0.tar.gz
- Upload date:
- Size: 92.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e19be03f65ee3765f871c6535b045b60c053228efe1edeabebad9647f87d41fe
|
|
| MD5 |
47e65b9b199f9ca397b502c0bf8c1a34
|
|
| BLAKE2b-256 |
a2501c73fa325a7cf4786178191a5e38d3022d6c1d6a6eb5653b5ed2522c494c
|
File details
Details for the file ferropdf-0.1.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3634e36b0c77e1cfa16e761f060b2b2b8eecbe3cff6c628d315a58d936a86ed5
|
|
| MD5 |
e8fbec4c0867ae5ff529569458688b3f
|
|
| BLAKE2b-256 |
75abdc31ab21b1357e7b343545248ddb6d4f103b9f632e2c1d537898114d5f06
|
File details
Details for the file ferropdf-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
201804e7e9a9c411f401f37de0d5d730f4fa3c869abecf642d5cd2bdee32c16c
|
|
| MD5 |
44788de520b6d3084e2c645a996342a0
|
|
| BLAKE2b-256 |
682e8a45ec24552b3dca41bcf7e7e3517256f065a78886bf19d2e0b0f5039bf1
|
File details
Details for the file ferropdf-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13b7a78b381b57d89aeb701848d317e106633bdc61b78f6c101847671820f65b
|
|
| MD5 |
a72f13c85b7562f2dae1745875fb9a36
|
|
| BLAKE2b-256 |
adb075ff1c6f3b4a042c3c3226c96f757d5f84e7d2e38ec21b0bd3ed4adf0421
|
File details
Details for the file ferropdf-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9366edb7aa69eb08f5d83a0e0400de262fd6c7b8b30930fa432573261d58dbe
|
|
| MD5 |
d23214a9cf6aeb91d838d86ea5d941e6
|
|
| BLAKE2b-256 |
2230bb5966719759ba85c67612f969ae411cfef6d533b730ab6e435e5c74d2ef
|
File details
Details for the file ferropdf-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
691e29035470cd8531fc5de344db60a184e84aed4fc12889a41b5f5530d0f179
|
|
| MD5 |
c2eb3e4a1a82cc98d287e17223bdf02e
|
|
| BLAKE2b-256 |
d4b078599a8bd43f7597a94e4adbcf7b1b85321f674d23007d4fd399ef66474f
|
File details
Details for the file ferropdf-0.1.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac87cb64862f94aa8015fa0df4dc1b7b3d523b75867006597d6961bf66549c95
|
|
| MD5 |
81870116daeb250e588be24c727c1436
|
|
| BLAKE2b-256 |
c015fc7599ee55a68f139aa0c257866fce4f03c63c6c300fa0111dea1eb3a8e4
|
File details
Details for the file ferropdf-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb0768e84f54f92dc0d637085810bc4fadb512ddc0f3596827d6c8c38c2841b3
|
|
| MD5 |
339fa4ba1b48319b05f0bdc778b2587b
|
|
| BLAKE2b-256 |
3739cd2d77db76594a02a3feff470fe6da8e9c93aa3f5b6066e4bc9baeb6f47b
|
File details
Details for the file ferropdf-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f73ef54bbf575c682cd26a3064e7aa62fda1f46ae136c018737aa6273f17fb2
|
|
| MD5 |
a79591530b740f62ed80082b867213b5
|
|
| BLAKE2b-256 |
e8cd17bbe4293e1d3b25870abf1e01e47f5c001ed82eeabdbb72110f8de433ed
|
File details
Details for the file ferropdf-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7d29788a4273f2d2c2b33f0f9db23ad0aada3f1ae92152de1f87f74e9924d3d
|
|
| MD5 |
f70aa0ff14717e41da1ed87352de63cc
|
|
| BLAKE2b-256 |
1dfb049accc37647fa8c69e1f1858d1518d1320c84a61981927deb72018b7e42
|
File details
Details for the file ferropdf-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83dfd1760767f52202d418eb274934be78bc80fabd2f8d9924338f88e5c3a769
|
|
| MD5 |
acf97983947e1737be6771cabe29897b
|
|
| BLAKE2b-256 |
7905a1d93d1b4d4fcf9b5034b5661cfee816e111db7fd015285d289d7b1b17d1
|
File details
Details for the file ferropdf-0.1.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd051b644ef98a70d56bd20fbde2ee649a30e0ea1ca461cd0836ba2b6a4110e0
|
|
| MD5 |
c1c2d5050f64b7eb6a973d326daf6fce
|
|
| BLAKE2b-256 |
988e26749ab3ed2fa30735ed20bdf2830f982fc64672692f9e38c836f42b3498
|
File details
Details for the file ferropdf-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06754f510f99b2b672180a626567ea7032ff1cd7b0e8edea0d37b0a33653d8d1
|
|
| MD5 |
783b78de6831da540b9ea7bfcd431bdd
|
|
| BLAKE2b-256 |
251749d587ade32eeb2cb6af4e364e69e4f6e311a34b27f51021c3f29c86360b
|
File details
Details for the file ferropdf-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
358d2abf6d617697ad9f387a845ab48153a737faf912e538f7658bb5990a3d88
|
|
| MD5 |
41b68e9a0d95e5e0943a69aa5cdf9fce
|
|
| BLAKE2b-256 |
8c1ad41d0ef70f14d2608ff16059802226cc19dc1848f7b9915a5274bbc6f71f
|
File details
Details for the file ferropdf-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80d39a07d710e210b7f821d2110388f81e83c12483251dad5078abacf5d5af3a
|
|
| MD5 |
4045a0c016c4b1d9f26ccbb2639d440a
|
|
| BLAKE2b-256 |
0c8e4f547397d513e2bccdbafc073250ed1c7ae1df1a52c8e9a8996e08bd39ae
|
File details
Details for the file ferropdf-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6aa6293230f67fb4a4dea0316f9091038ae8406cdf776ee9c2b67fbf9ed2b3b
|
|
| MD5 |
c23019bfc6178e0cb23f9af21ff50fec
|
|
| BLAKE2b-256 |
7bef0a107e4f7dba78523763329f5cfb750fc0bc696cfb24b5deb22b684e1449
|
File details
Details for the file ferropdf-0.1.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f2aceaf233c182ca12a5c20bcefbc2341d3f5b4845dbfc893cd943311556bfd
|
|
| MD5 |
d437cc6fbb63765bfeee87490888850d
|
|
| BLAKE2b-256 |
49632389de40e700011e0470105e04d9e8c99f159cf2da507a4b44f831ad62eb
|
File details
Details for the file ferropdf-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30783a8e27bb4b169412c2c678c322ad864ace58223c78f791c31f3a81613bfb
|
|
| MD5 |
cac980f1c33cbecc147ae0315cc61b8f
|
|
| BLAKE2b-256 |
d9628c90b991a85d5fa55b31d9fd528ce1cd485b74ee496ad0dbc75bcfec4134
|
File details
Details for the file ferropdf-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6f8cb1396da0f9073276725f4ced4eccf539f9259f2c22d4b7a8727eec5f97f
|
|
| MD5 |
55519e000739c0b225072f57ecb91f76
|
|
| BLAKE2b-256 |
401a79e701bbb0927cde4c2437d91abb1c23390e22c551321697a5b6a93ee4e5
|
File details
Details for the file ferropdf-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
284ee617ebf361c11737c617ec49cc9f1bd051d8b831fe0329f7ec274d4b0a49
|
|
| MD5 |
a6dc530303f6d3e3a3766e2940dd2852
|
|
| BLAKE2b-256 |
bb5acb6baac5ccc4f260c49b4d3cc2e31e9f19fd32863592a04e2bb6afa7db54
|
File details
Details for the file ferropdf-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19b26620c26e4d5f3c618d0a24c2a91cac239ca70dd433d5d11a870241fbad69
|
|
| MD5 |
4ecfde55042ff03e4e2f71a0a69a246b
|
|
| BLAKE2b-256 |
ea35e8fd0b3150050f3f078767c178ea1d07ffc688b8efe222af3d401c87fa0d
|
File details
Details for the file ferropdf-0.1.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0cd0c291857fe8daacf387b8bf82d1cf6590d1ae2baab273314fd3bb0f37f22
|
|
| MD5 |
3fc8ee450c465b31b7f6b33fa3ca1a20
|
|
| BLAKE2b-256 |
ddb8c7cf40c96c5300965b39d8f023789079afb42bb7445901818731553a9e96
|
File details
Details for the file ferropdf-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f05693e48d735e700ab7e8a54ed024f97ed0263c6ab8dc5299b4201d3665fc6
|
|
| MD5 |
54b32c387cc3df9d970711b1cebd2322
|
|
| BLAKE2b-256 |
f2816ccbe6ec1c39261c2bc111039db48a71efc1116b397f38660b8320a2b7b3
|
File details
Details for the file ferropdf-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05fec02aaeb620b67249eb4e3be5c454bb5163566ab9e741d2ce7d74a589cc91
|
|
| MD5 |
43daa62daabf4bd832d88fbdd1c981ee
|
|
| BLAKE2b-256 |
0ce16580433ad18b2dd74d1a37f02aba9f54f94d64971a745a7f8f60379cbb39
|
File details
Details for the file ferropdf-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78f1fcbae7aa23c1621e3169a72866121de4fe20a4c1ed17693271635f99ca8b
|
|
| MD5 |
0812b4e1fd2c2b5dfc404c99a51805d9
|
|
| BLAKE2b-256 |
f2516655d560ba8a66c7404870dec8c80c3306f9b8c0ec0e5aaba2fbbc7e9f40
|
File details
Details for the file ferropdf-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ferropdf-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.9, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
caf7aeb4029741c883034e44d754bc6ec018182dc4c80541359903df1899003e
|
|
| MD5 |
05e39f80a07ed79974d38e4ee5108e1c
|
|
| BLAKE2b-256 |
671946a1018fbbede5a93c8bea5784394d49e0631b21a68df2e262fbeda461a4
|