Package Structure¶
Hardwood is organized into public API packages and internal implementation packages. Application code should import only from the public packages; dev.hardwood.internal.* and its subpackages are implementation details and may change without notice.
| Package | Visibility | Purpose |
|---|---|---|
dev.hardwood |
Public API | Entry point for creating readers and managing shared resources (thread pool, decompressor pool). |
dev.hardwood.reader |
Public API | Single-file and multi-file readers for row-oriented and column-oriented access. |
dev.hardwood.metadata |
Public API | Parquet file metadata: row groups, column chunks, physical/logical types, and compression codecs. |
dev.hardwood.schema |
Public API | Schema representation: file schema, column schemas, and column projection. |
dev.hardwood.row |
Public API | Value types for nested data access: structs, lists, and maps. |
dev.hardwood.avro |
Public API | Avro GenericRecord support: schema conversion and row materialization (hardwood-avro module). |
dev.hardwood.s3 |
Public API | S3 object storage support: S3Source, S3InputFile, S3Credentials, S3CredentialsProvider (hardwood-s3 module, zero external dependencies). |
dev.hardwood.aws.auth |
Public API | Bridges the AWS SDK credential chain to Hardwood's S3CredentialsProvider (hardwood-aws-auth module, optional). |
dev.hardwood.jfr |
Public API | JFR event types emitted during file reading, decoding, and pipeline operations. |
dev.hardwood.internal.* |
Internal | Implementation details — not part of the public API and may change without notice. |