Skip to content

Releases: bdura/livre

livre-v0.3.0

20 Jan 00:09
f3bc0dd
Compare
Choose a tag to compare

Added

  • owned builder (#35)
  • object stream (#34)
  • implement Build for Streams (#33)
  • implement Parser for Builders (#29)
  • cleaner builder module (#28)

Fixed

  • build containers (#32)

Other

  • update changelog (#38)
  • add release-plz (#36)
  • reorganise Build traits (#31)
  • fix changelog...
  • move structures into extraction/special (#30)
  • filtering (#27)
  • create a dedicated references submodule (#24)

Changed

  • Move PDF-specific datastructures from a dedicated structures module to extraction/special.
  • Refactor the Build trait (and friends):
    • rename module follow_refs
    • drop blanket implementation for Extract types, allowing more flexibility - in particular
      with Indirect and OptRef
    • drop Build support for types that reference into the input data, simplifying reference-
      following traits.
    • add a BuildFromRawDict trait, that implements Build.
  • Modify LiteralString to own its data

livre-v0.2.0

27 Dec 00:35
df84431
Compare
Choose a tag to compare

Added

  • Declaration of the Trailer type to represent PDF trailers.
  • Extraction facilities for cross-reference tables & trailer (regrouped as a single block),
    with support for cross-reference tables & streams. Such a block is described by the new
    XRefTrailerBlock type.

Full Changelog: v0.1.0...livre-v0.2.0

v0.1.0

23 Dec 18:19
fa4bb7e
Compare
Choose a tag to compare

Very first release of the Livre crate!

What's Changed

Added

  • Low-level extraction utilities able to parse any PDF object in a type-safe manner,
    using three main traits:
    • Extract, which defines how a type can extract itself from a stream of bytes
    • Builder, which declares how an object can follow PDF references to build more
      complex objects
    • Build, which defines how a complex type can leverage a Builder object to
      build itself despite the presence of PDF references
  • Extractable types include Rust primitive types as well as usual containers:
    • the unit type, which maps with the null PDF object
    • booleans
    • all integer and floating-point numbers
    • tuples, arrays, and vectors of extractable types
    • optional types
  • ... as well as PDF-specific types, including:
    • PDF strings (literal & hexadecimal)
    • dictionaries
    • references (cf Builder & Build traits)
    • names
    • streams