[package]
edition = "2024"
rust-version = "1.92"
name = "pdfrum"
version = "0.1.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A composable PDF library built in Rust"
readme = "README.md"
keywords = [
"pdf",
"render",
"parse",
"text",
"graphics",
]
categories = [
"parser-implementations",
"graphics",
"text-processing",
"multimedia::images",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/PoHsuanLai/pdfrum"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
agg = ["dep:pdfrum-raster-agg"]
ccitt = [
"pdfrum-page/ccitt",
"pdfrum-filters/ccitt",
]
codecs-all = [
"jpeg2000",
"jbig2",
"ccitt",
]
default = [
"vello-cpu",
"edit",
"forms",
"codecs-all",
"system-fonts",
]
edit = ["dep:pdfrum-edit"]
forms = ["dep:pdfrum-form"]
full = [
"vello-cpu",
"tiny-skia",
"agg",
"edit",
"forms",
"javascript",
"markdown",
"svg-export",
"svg-import",
"svg-text",
"png",
"codecs-all",
"system-fonts",
]
javascript = [
"forms",
"pdfrum-form/javascript",
]
jbig2 = ["pdfrum-page/jbig2"]
jpeg2000 = ["pdfrum-page/jpeg2000"]
markdown = ["dep:pdfrum-markdown"]
png = ["pdfrum-render/png"]
profiling = [
"pdfrum-page/profiling",
"pdfrum-doc/profiling",
]
svg-export = ["dep:pdfrum-svg"]
svg-import = [
"edit",
"dep:usvg",
"dep:png",
]
svg-text = [
"svg-import",
"usvg/text",
]
system-fonts = ["pdfrum-font/system-fonts"]
tiny-skia = ["dep:pdfrum-raster-tinyskia"]
vello-cpu = ["dep:pdfrum-raster-vello-cpu"]
vello-gpu = ["dep:pdfrum-raster-vello"]
[lib]
name = "pdfrum"
path = "src/lib.rs"
[[example]]
name = "extract-text"
path = "examples/extract-text.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[example]]
name = "fill-form-and-save"
path = "examples/fill-form-and-save.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[example]]
name = "header-rule"
path = "examples/header-rule.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[example]]
name = "parallel-render"
path = "examples/parallel-render.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[example]]
name = "render-to-png"
path = "examples/render-to-png.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[example]]
name = "subset_dump"
path = "examples/subset_dump.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[example]]
name = "watermark"
path = "examples/watermark.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "attachments"
path = "tests/attachments.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "canvas"
path = "tests/canvas.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "construct_enums"
path = "tests/construct_enums.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "embed_image"
path = "tests/embed_image.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "facade"
path = "tests/facade.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "flatten"
path = "tests/flatten.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "form_actions"
path = "tests/form_actions.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "form_choice"
path = "tests/form_choice.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "form_listbox"
path = "tests/form_listbox.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "form_routing"
path = "tests/form_routing.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "form_scripts"
path = "tests/form_scripts.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "form_substitution"
path = "tests/form_substitution.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "form_tab"
path = "tests/form_tab.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "form_toggle"
path = "tests/form_toggle.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "limits"
path = "tests/limits.rs"
required-features = ["vello-cpu"]
[[test]]
name = "load_font"
path = "tests/load_font.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "load_font_subset"
path = "tests/load_font_subset.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "metadata"
path = "tests/metadata.rs"
required-features = ["edit"]
[[test]]
name = "mutation"
path = "tests/mutation.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "owned"
path = "tests/owned.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "pdfa_convert"
path = "tests/pdfa_convert.rs"
required-features = ["edit"]
[[test]]
name = "pdfa_cycles"
path = "tests/pdfa_cycles.rs"
[[test]]
name = "pdfa_oracle"
path = "tests/pdfa_oracle.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "prepared_page"
path = "tests/prepared_page.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "reexports"
path = "tests/reexports.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "searchex"
path = "tests/searchex.rs"
[[test]]
name = "signatures"
path = "tests/signatures.rs"
[[test]]
name = "stamp"
path = "tests/stamp.rs"
required-features = [
"vello-cpu",
"edit",
]
[[test]]
name = "subset"
path = "tests/subset.rs"
required-features = [
"vello-cpu",
"edit",
"forms",
]
[[test]]
name = "svg_export"
path = "tests/svg_export.rs"
required-features = [
"vello-cpu",
"svg-export",
]
[[test]]
name = "svg_form"
path = "tests/svg_form.rs"
required-features = ["svg-import"]
[[test]]
name = "svg_ingest"
path = "tests/svg_ingest.rs"
required-features = [
"svg-import",
"tiny-skia",
]
[[test]]
name = "thumbnails"
path = "tests/thumbnails.rs"
required-features = ["vello-cpu"]
[[test]]
name = "traits"
path = "tests/traits.rs"
required-features = ["vello-cpu"]
[[test]]
name = "words"
path = "tests/words.rs"
[dependencies.kurbo]
version = "0.13.1"
[dependencies.pdfrum-common]
version = "0.1.0"
[dependencies.pdfrum-crypt]
version = "0.1.0"
[dependencies.pdfrum-doc]
version = "0.1.0"
[dependencies.pdfrum-edit]
version = "0.1.0"
optional = true
[dependencies.pdfrum-filters]
version = "0.1.0"
[dependencies.pdfrum-font]
version = "0.1.0"
[dependencies.pdfrum-form]
version = "0.1.0"
optional = true
[dependencies.pdfrum-markdown]
version = "0.1.0"
optional = true
[dependencies.pdfrum-object]
version = "0.1.0"
[dependencies.pdfrum-page]
version = "0.1.0"
[dependencies.pdfrum-parser]
version = "0.1.0"
[dependencies.pdfrum-raster-agg]
version = "0.1.0"
optional = true
[dependencies.pdfrum-raster-tinyskia]
version = "0.1.0"
optional = true
[dependencies.pdfrum-raster-vello]
version = "0.1.0"
optional = true
[dependencies.pdfrum-raster-vello-cpu]
version = "0.1.0"
optional = true
[dependencies.pdfrum-render]
version = "0.1.0"
[dependencies.pdfrum-svg]
version = "0.1.0"
optional = true
[dependencies.pdfrum-text]
version = "0.1.0"
[dependencies.peniko]
version = "0.6.1"
[dependencies.png]
version = "=0.18.1"
optional = true
[dependencies.thiserror]
version = "=2.0.20"
[dependencies.usvg]
version = "=0.48.1"
optional = true
default-features = false
[dev-dependencies.pdfrum-common]
version = "0.1.0"
[dev-dependencies.pdfrum-filters]
version = "0.1.0"
[dev-dependencies.pdfrum-raster-agg]
version = "0.1.0"
[dev-dependencies.pdfrum-raster-tinyskia]
version = "0.1.0"
[dev-dependencies.pdfrum-render]
version = "0.1.0"
[dev-dependencies.png]
version = "=0.18.1"
[dev-dependencies.rayon]
version = "=1.12.0"
[dev-dependencies.resvg]
version = "=0.48.1"
features = ["raster-images"]
default-features = false
[lints.clippy]
expect_used = "deny"
fn_params_excessive_bools = "deny"
module_name_repetitions = "allow"
must_use_candidate = "allow"
panic = "deny"
unwrap_used = "deny"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "warn"
unsafe_code = "forbid"