Skip to content

Conversation

@HeartLinked
Copy link
Contributor

@HeartLinked HeartLinked commented Sep 18, 2025

Add cpr and curl dependency for REST catalog. This is related to #232 .

The current code in the REST package is just a demo example to verify the feasibility of cpr, which will be replaced in future commits. The actual content will be added in subsequent PRs so that we can keep the size of each PR reasonable.

@wgtmac
Copy link
Member

wgtmac commented Sep 19, 2025

BTW, we need to update NOTICE and LICENSE files for these new dependencies.

Copy link
Member

@wgtmac wgtmac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you try apply this change locally and build the example?

diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
index 3e178a8..4fc05c7 100644
--- a/example/CMakeLists.txt
+++ b/example/CMakeLists.txt
@@ -26,4 +26,4 @@ find_package(Iceberg CONFIG REQUIRED)
 
 add_executable(demo_example demo_example.cc)
 
-target_link_libraries(demo_example PRIVATE Iceberg::iceberg_bundle_static)
+target_link_libraries(demo_example PRIVATE Iceberg::iceberg_bundle_static Iceberg::iceberg_rest)

LICENSE Outdated

--------------------------------------------------------------------------------

3rdparty dependency cpr is statically linked in certain binary
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jbonofre Could you help review LICENSE and NOTICE files for adding cpr and curl? BTW, do we need to add OpenSSL which is an indirect dependency (required by curl)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jbonofre Could you help review LICENSE and NOTICE files for adding cpr and curl? BTW, do we need to add OpenSSL which is an indirect dependency (required by curl)?

I have split the task of modifying the license into a separate PR #243 . @jbonofre Could you help review it? In this case, the current PR will not involve license modifications and should be able to be merged quickly.

Copy link
Collaborator

@zhjwpku zhjwpku left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@jbonofre
Copy link
Member

I will do the review later today.

@HeartLinked
Copy link
Contributor Author

The task of modifying the license has been moved into a separate PR #243 . In this case, the current PR will not involve license modifications and should be able to be merged quickly.

@wgtmac
Copy link
Member

wgtmac commented Sep 24, 2025

@Fokko I think this is ready to merge. It is the first step to add rest catalog client support. We will add LICENSE/NOTICE in a dedicated PR.

@wgtmac
Copy link
Member

wgtmac commented Sep 25, 2025

The PR title is out of date. Perhaps feat: add cpr dependency for rest catalog client?

@HeartLinked HeartLinked changed the title feat: add cpr and curl dependency for REST catalog feat: add cpr dependency for rest catalog client Sep 25, 2025
@Fokko Fokko merged commit 341f8d5 into apache:main Sep 25, 2025
7 checks passed
@Fokko
Copy link
Contributor

Fokko commented Sep 25, 2025

Thanks @HeartLinked for working on this and thanks for the review 🙌

@Fokko
Copy link
Contributor

Fokko commented Sep 25, 2025

@wgtmac LICENSE and NOTICE can be done in a separate PR, but must not be forgotten. Do you know if there are any CPP specific tools for checking this?

@wgtmac
Copy link
Member

wgtmac commented Sep 25, 2025

@Fokko The followup PR is #243 :)

Fokko pushed a commit that referenced this pull request Oct 10, 2025
Reorganizes the catalog module structure to better support the upcoming
REST catalog implementation. Changes:
- Create a new `memory` subdirectory within
`iceberg-cpp/src/iceberg/catalog/`. Move the existing
`in_memory_catalog.cc` and `in_memory_catalog.h` files into this new
memory subdirectory.
- Add `json` dependencies for the rest package to support serialization
and deserialization of data.
- Add the `cpp-httplib` dependency to the rest test code. This library
will be used to simply simulate an Iceberg REST server, enabling tests
of whether the RestCatalog client can communicate with it correctly and
handle success and failure scenarios.

Hint: 
- This PR depends on the dependencies introduced in and should be merged
after #236.

closes #229 .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants