What's Changed
- Add ASF yaml by @Fokko in #1
- Add basic CMake support for the iceberg library by @wgtmac in #3
- Add clang format by @zhjwpku in #4
- Add basic CI to build iceberg and example by @raulcd in #7
- Add CMake format by @zhjwpku in #5
- add .gitignore by @zhjwpku in #9
- Add Dependabot for GitHub Actions by @Fokko in #11
- Add license checker by @Fokko in #10
- Add pre-commit config by @zhjwpku in #16
- Bump actions/setup-python from 3 to 5 by @dependabot[bot] in #18
- Bump actions/checkout from 3 to 4 by @dependabot[bot] in #19
- Add GitHub cpp-linter-action by @wgtmac in #20
- Add iceberg_arrow library by @wgtmac in #6
- Remove .DS_Store and add it into gitignore by @ConeyLiu in #23
- Integrate Googletest as Test Framework by @zhjwpku in #13
- fix wrong copyright year range by @zhjwpku in #25
- Fix CMake to support being a subproject by @wgtmac in #29
- Add Doxygen for generating API documentation by @lidavidm in #27
- ci: add initial collaborators by @wgtmac in #38
- ci: add clang-tidy Checks by @zhjwpku in #32
- add iceberg_avro interface by @zhjwpku in #34
- fix: use upstream avro tag by @wgtmac in #42
- Add data type/schema field/schema by @lidavidm in #31
- Make field repr explicit about optionality, add exception type by @lidavidm in #43
- backport c++23 std::expected by @zhjwpku in #40
- Add Arrow C Data Interface and nanoarrow dependency by @wgtmac in #44
- add missing iceberg_export.h by @zhjwpku in #48
- fix: do not write ICEBERG_INCLUDES everywhere by @wgtmac in #49
- feat: add pure virtual classes for Catalog, Table, etc. by @wgtmac in #47
- refactor: simplify library management by @wgtmac in #52
- feat: convert iceberg schema to arrow schema by @wgtmac in #53
- feat: add partition field/partition spec by @gty404 in #54
- feat: add file_io and local impl by adapting arrow::filesystem by @zhjwpku in #30
- feat: convert arrow schema to iceberg schema by @wgtmac in #57
- feat: sort order by @zhjwpku in #59
- feat: add nlohmann/json library by @wgtmac in #63
- feat: add table metadata definition by @wgtmac in #62
- feat: add json serialization for schema by @wgtmac in #65
- feat: sort field/order json serialize/deserialization by @gty404 in #64
- refactor: consolidate json utility by @wgtmac in #66
- refactor: consolidate result type by @gty404 in #67
- feat: add json serialization for partition spec by @gty404 in #68
- feat: transform function by @gty404 in #61
- feat: snapshot by @zhjwpku in #60
- chore: don't include expected.h but result.h by @zhjwpku in #69
- feat: snapshot serde by @zhjwpku in #74
- chore: update avro-cpp for fixes from the upstream by @wgtmac in #76
- feat: adopt MurmurHash3 by @zhjwpku in #78
- feat:add init expression interface. by @yingcai-cy in #58
- feat: add json serde for table metadata by @wgtmac in #75
- refactor: add expression subdirectory by @wgtmac in #81
- test: add table metadata deserialization test by @wgtmac in #82
- chore: use chrono::milliseconds in snapshot and consolidate error usage by @zhjwpku in #83
- feat: add formatter specialization by @wgtmac in #86
- feat: add table metadata reader and writer by @wgtmac in #85
- feat: enable arrow to build parquet by @wgtmac in #89
- feat: add file reader interface by @wgtmac in #88
- chore: fix a build error due to name conflict by @zhjwpku in #90
- feat: add base config implementation by @yingcai-cy in #92
- feat: add name mapping by @wgtmac in #93
- chore: better error handling of nlohmann json lib apis by @zhjwpku in #95
- feat: add doc attribute to SchemaField by @wgtmac in #96
- feat: add visit type support by @zhjwpku in #94
- feat: add json serde to name mapping by @wgtmac in #97
- feat: add metadata columns definition by @wgtmac in #98
- feat: create name mapping from schema by @wgtmac in #99
- feat: add schema conversion to avro schema by @wgtmac in #100
- feat: add zlib dependency by @dongxiao1198 in #101
- feat: add manifest related structures by @zhjwpku in #91
- fix: bump avro version to enable uuid type test case by @wgtmac in #103
- feat: add field id checker to avro schema by @wgtmac in #106
- feat: add avro input&output stream based on arrow stream impl by @dongxiao1198 in #105
- feat: add schema projection support by @wgtmac in #102
- refactor: use nesting enum for DataFile and ManifestFile content by @wgtmac in #110
- feat: add avro schema projection by @wgtmac in #109
- feat: implement initial MemoryCatalog functionality with namespace and table support by @gty404 in #80
- feat: support decompress gzip metadata by @dongxiao1198 in #108
- ci: add asan and ubsan support by @METONLIULEI in #107
- fix: Minor typo fixes by @mapleFU in #115
- feat: implement avro file reader by @wgtmac in #113
- fix: fix build warning in switch case (#118) by @MisterRaindrop in #119
- fix: allow PartitionField's field_id to be missing in Iceberg v1 by @Smith-Cruise in #121
- refactor: remove explicit operator!= using C++20 rewrite candidates by @mapleFU in #123
- feat: implement Primitive type Literal by @mapleFU in #117
- feat: add or expression by @yingcai-cy in #120
- chore: enable compile warning as error by @zhjwpku in #125
- refactor: replace std::any placeholder with Literal by @wgtmac in #130
- ci: enable sanitizer by @wgtmac in #129
- feat: add support for avro to arrow data conversion by @wgtmac in #124
- feat: metadata access support for table by @lishuxu in #111
- fix: no member named 'SourceFieldIndex' by @zhjwpku in #131
- feat: add avro reader to registry by @wgtmac in #133
- refactor: add factory functions for primitive types by @zhjwpku in #134
- feat: basic table scan planning by @gty404 in #112
- chore: bump C++ standard to 23 by @zhjwpku in #139
- feat: add spdlog dependency to implement logging by @wgtmac in #140
- chore: upgrade nanoarrow dependency by @gty404 in #146
- refactor: Add SchemaById and SnapshotById to TableMetadata by @gty404 in #144
- feat: add manifest list reader by @dongxiao1198 in #143
- feat: RegisterTable support for InMemoryCatalog by @lishuxu in #142
- feat: support operator== for Literal/Manifest/ManifestList by @dongxiao1198 in #147
- feat: implement transform ResultType by @zhjwpku in #132
- feat: add in-memory FileIO backed by Arrow MockFileSystem by @wgtmac in #148
- bump arrow version to 21.0.0 by @zhjwpku in #149
- feat: support manifest reader by @dongxiao1198 in #150
- fix: wrong header inclusion by @zhjwpku in #155
- refactor: Simplify test setup using a common CMake function by @lishuxu in #151
- feat: pass partition schema to manifest reader by @dongxiao1198 in #157
- feat: add scaffolding work for parquet reader by @wgtmac in #154
- feat(parquet): add HasFieldIds check by @wgtmac in #158
- chore(deps): bump cpp-linter/cpp-linter-action from 2.13.3 to 2.15.0 by @dependabot[bot] in #114
- fix: correct return type of ArrowFileSystemFileIO functions( MakeMockFileIO, MakeLocalFileIO ) by @nullccxsy in #161
- feat: add file writer and manifest writer interface definition by @dongxiao1198 in #160
- fix: Correct BuildTable method signature by @HeartLinked in #163
- feat: implement Literal Transform by @zhjwpku in #156
- feat(parquet): add schema projection to parquet by @wgtmac in #159
- feat: Refresh method support for table by @lishuxu in #152
- test: add test of manifestlistv1 by @nullccxsy in #171
- chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #170
- fix: content in manifest entry should be optional by @nullccxsy in #172
- feat: support avro writer by @dongxiao1198 in #173
- test: enhance ManifestListReaderV2Test and unified test architecture by @HeartLinked in #168
- feat(parquet): project arrow array for parquet by @wgtmac in #165
- feat(avro): extract avro datum from arrow array by @wgtmac in #166
- fix: correct partition field handling for non-partitioned tables and add test for manifest file reader by @HeartLinked in #175
- test: add parquet reader test by @wgtmac in #184
- feat: avro support applying field-ids based on name mapping by @MisterRaindrop in #127
- chore: use more from_chars by @zhjwpku in #186
- chore: add missing license header by @HeartLinked in #189
- refactor: enhance forward declarations in type_fwd.h to reduce compile dependencies by @HeartLinked in #187
- chore: consolidate avro and parquet register api by @wgtmac in #191
- refactor: clean up code to apply name mapping on avro by @wgtmac in #195
- chore(deps): bump cpp-linter/cpp-linter-action from 2.15.0 to 2.16.0 by @dependabot[bot] in #183
- feat: implement manifest entry metadata inheritance by @HeartLinked in #178
- refactor: rename util files from *_utils to *_util for consistency by @HeartLinked in #197
- refactor: default equality operators for statistic file structs by @smaheshwar-pltr in #202
- refactor: remove unused arrow_c_data_internal files by @nullccxsy in #203
- feat: implement endian conversion utilities by @HeartLinked in #196
- feat: add find field (by id and name) support to schema by @nullccxsy in #180
- feat: add find field (by name) support to NestedType by @nullccxsy in #194
- feat: implement basic parquet writer and add roundtrip tests by @HuaHuaY in #198
- feat: implement AvroWriter Write method by @nullccxsy in #204
- feat: add manifest&manifest list writer by @dongxiao1198 in #176
- feat: add demo for registering table and planning files by @wgtmac in #205
- chore: use ninja for ci build by @zhjwpku in #215
- chore: add release script and github workflow by @HeartLinked in #193
- chore: add missing license for spdlog and zlib by @wgtmac in #217
New Contributors
- @Fokko made their first contribution in #1
- @wgtmac made their first contribution in #3
- @zhjwpku made their first contribution in #4
- @raulcd made their first contribution in #7
- @dependabot[bot] made their first contribution in #18
- @ConeyLiu made their first contribution in #23
- @lidavidm made their first contribution in #27
- @gty404 made their first contribution in #54
- @yingcai-cy made their first contribution in #58
- @dongxiao1198 made their first contribution in #101
- @METONLIULEI made their first contribution in #107
- @mapleFU made their first contribution in #115
- @MisterRaindrop made their first contribution in #119
- @Smith-Cruise made their first contribution in #121
- @lishuxu made their first contribution in #111
- @nullccxsy made their first contribution in #161
- @HeartLinked made their first contribution in #163
- @smaheshwar-pltr made their first contribution in #202
- @HuaHuaY made their first contribution in #198
Full Changelog: https://github.com/apache/iceberg-cpp/commits/v0.1.0