All Versions
26
Latest Version
Avg Release Cycle
59 days
Latest Release
1276 days ago

Changelog History
Page 1

  • v0.26.0 Changes

    September 29, 2020

    ➕ Add

    • Add as_str, as_str_mut methods to Object (#107)

    Dtoa

    • dtoa may write real number in exponential format which is not allowed in PDF

    Genericize

    • Genericize Content to allow AsRef<[Operation]> (#111)

    👉 Make

    • 0️⃣ Make pom dependency optional (but default) (#112)
    • 👉 Make rayon dependency optional (#108)

    🔀 Merge

    • 🔀 Merge document PDF logic with some fixes (#117)

    Various

    • ⚡️ Various improvements, updated libraries and image features (#118)
  • v0.25.0 Changes

    June 25, 2020

    ➕ Add

    • ➕ add indexing checks (#98)

    ➕ Add

    • ➕ Add a test for #93 (#95)

    🛠 Bugfix

    • 🛠 Bugfix for xref_start. (#105)

    Check

    • check that the buffer is big enough for startxref (#93)

    Create

    • Create rust.yml (#104)

    Extend

    • extend recursion limit to non-local references (#100)

    🛠 Fix

    • 🛠 Fix compilation error&test error (#102)

    Keep

    • keep looking for the last pattern (#94)

    Limit

    • limit recursion to the number of objects (#92)

    Limit

    • Limit allowed bracket depth. (#97)

    🚚 Move

    • 🚚 Move bracket depth checking into parsers. (#101)

    🚀 Release

    • 🚀 Release 0.25

    Return

    • Return Result from as_array_mut() (#106)

    ⚡️ Update

    • ⚡️ Update itoa and linked-hash-map (#91)
  • v0.24.0 Changes

    February 17, 2020

    Compute

    • Compute an accurate iterator size when the page tree is sane.

    🛠 Fix

    • 🛠 Fix datetime parser (#89)

    More

    • 📜 More permissive datetime parsing (#90)

    🚀 Release

    • 🚀 Release 0.24

    Validate

    • 📜 Validate expected id in pom parser.
    • Validate the expected id when reading indirect objects.
  • v0.23.0 Changes

    July 14, 2019

    Adapt

    • 📜 Adapt pom parser.

    ➕ Add

    • ➕ Add error descriptions.
    • ➕ Add a proper error type and remove some more panics.

    👍 Allow

    • 👍 Allow loading a document from a memory slice.

    Avoid

    • Avoid allocating an intermediate collection for iteration.
    • Avoid unwraps when already returning an Option for failure.

    Error

    • 🚦 Error signaling around compression and image handling.

    Escape

    • Escape fix (#68)

    Export

    • Export dereference function as it is useful for PDF consumers.
    • Export filters module.

    Get_font_encoding

    • get_font_encoding seems more at home with Dictionary.

    🖐 Handle

    • 🖐 Handle stream filter chains (#66)

    Hex

    • Hex fix (#67)

    Implement

    • Implement LZW decompression.

    👌 Improve

    • 👌 Improve hex parsing performance.

    👉 Make

    • 👉 Make a page iterator.
    • 👉 Make Reader::read consume the Reader.
    • 👉 Make content operations faillible.

    Protect

    • Protect against reference loops.
    • Protect against a corrupted page tree.

    🔨 Refactor

    • 🔨 Refactor a bit to allow a utility function.

    🚀 Release

    • 🚀 Release 0.23.0

    ✂ Remove

    • ✂ Remove intermediate assignation.
    • ✂ Remove unsafe code around FilterType.
    • Remove unsafe code on get_object_mut.
    • ✂ Remove some 'if let' for readability.
    • ✂ Remove more panic paths in xref parsing.

    Replace

    • Replace unwraps in processor.rs.

    Return

    • Return results when appropriate.

    Separate

    • Separate decompression into two functions.

    Take

    • Take care of panic that I actually hit on the pom side.
    • Take care of creator.rs.

    Unify

    • Unify buffer creation.

    👉 Use

    • 👉 Use lifetime ellision.
    • 👉 Use TryInto.
    • 👉 Use writeln where appropriate.
    • 👉 Use error enum in reader.
    • 👯 Use stable cloned.
  • v0.22.0 Changes

    May 13, 2019

    ➕ Add

    • ➕ Add parsing benchmark.
    • ➕ Add nom dependency.

    Also

    • ✅ Also test with nom parsing feature enabled.

    Array

    • 📜 Array and dictionary parsing.

    Avoid

    • Avoid using format! when writing.

    Be

    • Be explicit about trait objects.

    Boolean

    • 📜 Boolean and null parsing.

    Content

    • 📜 Content parsing.

    Duplicate

    • 📜 Duplicate pom parser for incremental replacement with nom 5.

    Ease

    • Ease off on rayon a bit.

    Escape

    • 📜 Escape sequence parsing.

    Extern

    • extern crate is not required anymore with 2018 edition.

    🛠 Fix

    • 🛠 Fix last ugly parser.
    • 🛠 Fix octal parser.
    • 🛠 Fix pdfutil build

    Float

    • 📜 Float parsing.

    Header

    • 📜 Header parsing.

    Hex

    • 📜 Hex string parsing.

    Indirect

    • 📜 Indirect object and stream parsing.

    Literal

    • Literal string syntax.

    👉 Make

    • 👉 Make sure Stream.start_position is relative to the whole file.

    🔀 Merge

    • 🔀 Merge remote-tracking branch 'upstream/master' into nom5
    • 🔀 Merge remote-tracking branch 'upstream/master' into nom5

    More

    • 👕 More 2018 edition lints.
    • More cleanup.
    • More cleanup.
    • More simplifications.

    Object

    • 📜 Object id and reference parsing.

    Octal

    • 📜 Octal and hexadecimal parsing.

    Parallel

    • 📜 Parallel object stream parsing.

    Rayon

    • Rayon usage proof of concept.

    🚀 Release

    • 🚀 Release 0.22.0

    ✂ Remove

    • ✂ Remove pom dependency in tests.

    Replace

    • 📜 Replace name parser.

    Resolve

    • Resolve name collisions.

    Simplify

    • Simplify lifetime annotations.

    Slowly

    • 📜 Slowly replace the cute pom parser with nom.

    Trailer

    • Trailer and xref start.

    Turns

    • Turns out "contained" already exists in nom.

    Unify

    • 📜 Unify both variants of the parsing functions.

    👉 Use

    • 👉 Use a BufWriter when saving to path.
    • Use parse_at(&self.buffer, offset) to read indirect_object
    • ✅ Use nom digit testing functions.
    • 👉 Use lifetime ellision.
    • 👉 Use nom sequence operators.

    👉 Useless

    • 🚚 Useless move.

    Xref

    • 📜 Xref stream and trailer parsing.
    • 📜 Xref parsing.
  • v0.21.0 Changes

    April 26, 2019

    Avoid

    • Avoid allocating a String.

    Check

    • Check offsets read from file to avoid panics
    • Check and correct Size entry of trailer dictionary

    Clean

    • Clean up bytes_to_string, string_to_bytes iterators

    🛠 Fix

    • 🛠 Fix clippy warnings
    • 🛠 Fix .editorconfig

    🛠 Fixed

    • 🛠 fixed finally

    Redundant

    • Redundant imports with 2018 edition.

    🚀 Release

    • 🚀 Release 0.21.0

    ⚡️ Update

    • ⚡️ Update example
    • ⚡️ Update Cargo.toml

    👉 Use

    • 👉 Use env_logger in pdfutil
  • v0.20.0 Changes

    March 07, 2019

    🚀 Release

    • 🚀 Release 0.20.0

    Replace

    • 🖨 Replace println with log macros

    👉 Use

    • 👉 Use Rust 2018
    • 👉 Use pom 3.0
  • v0.19.0 Changes

    October 24, 2018

    👍 Allow

    • 👍 Allow xref section has zero entries

    Dictionary

    • Dictionary key type changed to Vec

    Format

    • Format code with rustfmt

    👌 Improve

    • 👌 Improve codestyle (simplify loops, remove closures, use is_empty() etc.)

    🚚 Move

    • 🚚 Move image dependency to embed_image feature

    🚀 Release

    • 🚀 Release 0.19.0

    Skip

    • Skip corrupt deflate stream
  • v0.18.0 Changes

    October 05, 2018

    Able

    • Able to read stream when it's length is in object stream

    Adress

    • Adress timezone formatting problem from #34

    Insert

    • insert image on page
  • v0.17.0 Changes

    September 19, 2018

    👉 Make

    • 👉 Make chrono crate optional

    🚀 Release

    • 🚀 Release 0.17.0

    ⚡️ Update

    • ⚡️ Update add_barcode example