[package]
name = "pdfrum"
description = "A composable PDF library built in Rust"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
keywords = ["pdf", "render", "parse", "text", "graphics"]
categories = ["parser-implementations", "graphics", "text-processing", "multimedia::images"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
[lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
pedantic = { level = "warn", priority = -1 }
module_name_repetitions = "allow"
must_use_candidate = "allow"
fn_params_excessive_bools = "deny"
[features]
default = ["vello-cpu", "edit", "forms", "codecs-all", "system-fonts"]
vello-cpu = ["dep:pdfrum-raster-vello-cpu"]
tiny-skia = ["dep:pdfrum-raster-tinyskia"]
agg = ["dep:pdfrum-raster-agg"]
vello-gpu = ["dep:pdfrum-raster-vello"]
edit = ["dep:pdfrum-edit"]
forms = ["dep:pdfrum-form"]
javascript = ["forms", "pdfrum-form/javascript"]
markdown = ["dep:pdfrum-markdown"]
svg-export = ["dep:pdfrum-svg"]
svg-import = ["edit", "pdfrum-edit/svg-import", "dep:usvg"]
svg-text = ["svg-import", "pdfrum-edit/svg-text", "usvg/text"]
codecs-all = ["jpeg2000", "jbig2", "ccitt"]
system-fonts = ["pdfrum-font/system-fonts"]
jpeg2000 = ["pdfrum-page/jpeg2000"]
jbig2 = ["pdfrum-page/jbig2"]
ccitt = ["pdfrum-page/ccitt", "pdfrum-filters/ccitt"]
png = ["pdfrum-render/png"]
profiling = ["pdfrum-page/profiling", "pdfrum-doc/profiling"]
full = [
"vello-cpu",
"tiny-skia",
"agg",
"edit",
"forms",
"javascript",
"markdown",
"svg-export",
"svg-import",
"svg-text",
"png",
"codecs-all",
"system-fonts",
]
[dependencies]
pdfrum-common.workspace = true
pdfrum-object.workspace = true
pdfrum-parser.workspace = true
pdfrum-crypt.workspace = true
pdfrum-font.workspace = true
pdfrum-page.workspace = true
pdfrum-filters.workspace = true
pdfrum-render.workspace = true
pdfrum-raster-vello-cpu = { workspace = true, optional = true }
pdfrum-raster-tinyskia = { workspace = true, optional = true }
pdfrum-raster-agg = { workspace = true, optional = true }
pdfrum-raster-vello = { workspace = true, optional = true }
pdfrum-text.workspace = true
pdfrum-doc.workspace = true
pdfrum-markdown = { workspace = true, optional = true }
pdfrum-svg = { workspace = true, optional = true }
pdfrum-form = { workspace = true, optional = true }
pdfrum-edit = { workspace = true, optional = true }
usvg = { workspace = true, optional = true }
kurbo.workspace = true
peniko.workspace = true
thiserror.workspace = true
[dev-dependencies]
rayon.workspace = true
png.workspace = true
pdfrum-raster-tinyskia.workspace = true
pdfrum-raster-agg.workspace = true
pdfrum-render.workspace = true
pdfrum-filters.workspace = true
resvg.workspace = true
pdfrum-common.workspace = true
pdfrum-corpus.workspace = true
[[test]]
name = "attachments"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "canvas"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "embed_image"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "facade"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "flatten"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "form_actions"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "form_choice"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "form_listbox"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "form_routing"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "form_scripts"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "form_substitution"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "form_tab"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "form_toggle"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "load_font"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "load_font_subset"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "mutation"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "prepared_page"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "owned"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "subset"
required-features = ["vello-cpu", "edit", "forms"]
[[example]]
name = "extract-text"
required-features = ["vello-cpu", "edit", "forms"]
[[example]]
name = "header-rule"
required-features = ["vello-cpu", "edit", "forms"]
[[example]]
name = "fill-form-and-save"
required-features = ["vello-cpu", "edit", "forms"]
[[example]]
name = "parallel-render"
required-features = ["vello-cpu", "edit", "forms"]
[[example]]
name = "render-to-png"
required-features = ["vello-cpu", "edit", "forms"]
[[example]]
name = "subset_dump"
required-features = ["vello-cpu", "edit", "forms"]
[[example]]
name = "watermark"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "reexports"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "construct_enums"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "svg_export"
required-features = ["vello-cpu", "svg-export"]
[[test]]
name = "svg_ingest"
required-features = ["svg-import", "tiny-skia"]
[[test]]
name = "pdfa_oracle"
required-features = ["vello-cpu", "edit", "forms"]
[[test]]
name = "svg_form"
required-features = ["svg-import"]
[[test]]
name = "limits"
required-features = ["vello-cpu"]
[[test]]
name = "metadata"
required-features = ["edit"]
[[test]]
name = "pdfa_convert"
required-features = ["edit"]
[[test]]
name = "stamp"
required-features = ["vello-cpu", "edit"]
[[test]]
name = "thumbnails"
required-features = ["vello-cpu"]
[[test]]
name = "traits"
required-features = ["vello-cpu"]