The pdf-toolbox-core package

The API is based on random access input streams, and is designed to be memory efficient.
We don't need to parse the entire PDF file and store it in memory when you need just one page or two.
Usually it is also leads to time efficiency, but we don't try optimize performance
by e.g. maintaining xref or object cache. Higher level layers should take care of it.

The library is low level. It may mean that you need to be familiar with PDF file internals to
actually use it.