-
Notifications
You must be signed in to change notification settings - Fork 3
feat: Add support for CURL networking. #487
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
95 commits
Select commit
Hold shift + click to select a range
f22d157
chore: Cmake updates for FindBoost policies.
kinyoklion 8ef277b
feat: Add networking abstraction non-streaming requests.
kinyoklion 8204d2a
Update certify to version including FindBoost updates.
kinyoklion 6351b59
Update windows boost version.
kinyoklion f5d3b31
Try boost 1.85.
kinyoklion 7c2ca08
No boost root
kinyoklion 069edf1
Try boost 1.85 with link
kinyoklion 9152599
Update certify to remove boost::system dependency
kinyoklion ac66ddc
Remove Boost::system from foxy.
kinyoklion 22b258d
Use prefix to find boost cmake configuration.
kinyoklion 94b520c
Use Boost_DIR instead of prefix.
kinyoklion e8e6b91
Merge branch 'rlamb/cmake-updates' into rlamb/basic-network-request-a…
kinyoklion 531c805
Use correct step.
kinyoklion bdf1c4b
Merge branch 'rlamb/cmake-updates' into rlamb/basic-network-request-a…
kinyoklion df91388
fix: Ensure that serialization of a variation or rollout uses the cor…
kinyoklion 24b2629
Add conditional compilation.
kinyoklion fd3bd44
Conditional boost code in tests.
kinyoklion 9fa7cce
Merge branch 'rlamb/disambiguate-sequence-boost-json' into rlamb/basi…
kinyoklion 1ee9e1d
WIP
kinyoklion 04a8cf8
WIP
kinyoklion 543e450
Basics working
kinyoklion 5a5b8b9
Streaming working.
kinyoklion 7f03df2
Comments and cleanup.
kinyoklion 1b295c5
String constants.
kinyoklion 5573c5f
Updates
kinyoklion 71fa311
SSE tests working.
kinyoklion c60a03b
Contract test passing.
kinyoklion 0235834
Refactoring for more deterministic destruction.
kinyoklion a870f03
Passing contract tests.
kinyoklion 832183e
Join curl thread on shutdown.
kinyoklion 1c64987
Testing round 1.
kinyoklion 3da9112
Test robustness.
kinyoklion bb5cba3
Merge branch 'main' into rlamb/basic-network-request-abstraction
kinyoklion b860b2b
Conditional CURL compilation.
kinyoklion 428af22
Add proxy validation test.
kinyoklion b8b7f53
Add programmatic interface for setting proxy.
kinyoklion 7f8f1ce
Start CI work
kinyoklion c8ed14e
Revert example changes
kinyoklion 3363838
Revert SSE contract test changes.
kinyoklion 9e625df
Correct CURL download URLs for windows.
kinyoklion ef61eeb
Use powershell instead of bash to install curl.
kinyoklion 0e57e52
Forward CMAKE_EXTRA_ARGS.
kinyoklion 5ab043e
Extra actions in workflow
kinyoklion eaca3a0
More CMAKE args plumbing.
kinyoklion 9fffe56
Update the launchdarkly cmake config to handle optional curl dependency.
kinyoklion a42b4a3
Add configuration output to the cmake tests.
kinyoklion 1a76752
Optionally find CURL in cmake config.
kinyoklion e42aa31
Update cmake-test readme for CURL tests.
kinyoklion d1cfb47
Capture num_events explicitly for MSVC
kinyoklion 816064e
Build curl from source.
kinyoklion ae52c2c
Refactor windows CURL building and document.
kinyoklion f7a2490
Extend error handling.
kinyoklion 185d668
Build tests and contract tests with and without CURL.
kinyoklion b3cb350
Simplify redirect handling.
kinyoklion 602f48f
Refactor SSE curl threading.
kinyoklion 273fce4
Use posts
kinyoklion 6253672
Cleanup the RequestContext.
kinyoklion 3597de5
Add support for client-side proxy contract tests.
kinyoklion 2a49349
Add experimental notice for CURL server-side. Tag server-side artifac…
kinyoklion f378303
Contract test conditionally supports proxies.
kinyoklion e7622d0
Target lib name.
kinyoklion 6b8d925
Start refactoring backoff.
kinyoklion 27a498f
Initial
kinyoklion 09ba09d
Contract tests passing with multi support.
kinyoklion 6223137
Refactor to have a shared networking library.
kinyoklion fce4996
Cmake updates.
kinyoklion 9892c7b
Ensure descriptors and handlers are not leaking.
kinyoklion 87c0fbc
Start simplifying memory management.
kinyoklion 67a782d
Networking build must always use curl.
kinyoklion f330e97
Disable tests for networking component.
kinyoklion ff3a07b
Consolidate parsing.
kinyoklion 2ca2763
Use correct descriptor on windows.
kinyoklion d54c973
Socket abstraction.
kinyoklion 0dfe280
ASIO header only
kinyoklion e7f6564
Incremental memory management improvements.
kinyoklion e708abd
CMake build updates.
kinyoklion ca6f43e
Public link boost headers.
kinyoklion d3b18cd
Refine curl handle lifetime.
kinyoklion 0c2cbfe
Add debug logging
kinyoklion 583341e
Remove debug log.
kinyoklion fd469e0
Alternate timeout method.
kinyoklion e3965f9
Don't link boost to networking library
kinyoklion 8fdc421
Iterate
kinyoklion 23ebda3
Enable asio separate compilation.
kinyoklion 7502d88
Latest redis-plus-plus.
kinyoklion 417b1de
Comments and fix bad cast.
kinyoklion 3782ee9
Remove debug logging.
kinyoklion 12a7783
Additional code cleanup.
kinyoklion a80d0a5
Keep socket close logic.
kinyoklion 93c498a
Explicit capture for num_events for MSVC.
kinyoklion 8ee6a0d
Remove handlers that CURL no longer needs.
kinyoklion b3e35ba
Undo hello app changes.
kinyoklion 718f7be
Remove debug logs.
kinyoklion 75c79b8
Update examples/proxy-validation-test/README.md
kinyoklion f916106
Merge branch 'main' into rlamb/basic-network-request-abstraction
kinyoklion File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| name: Install CURL | ||
| description: 'Install CURL development libraries for all platforms.' | ||
|
|
||
| outputs: | ||
| CURL_ROOT: | ||
| description: The location of the installed CURL. | ||
| value: ${{ steps.determine-root.outputs.CURL_ROOT }} | ||
|
|
||
| runs: | ||
| using: composite | ||
| steps: | ||
| # Linux: Install via apt-get | ||
| - name: Install CURL for Ubuntu | ||
| if: runner.os == 'Linux' | ||
| id: apt-action | ||
| shell: bash | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y libcurl4-openssl-dev | ||
| echo "CURL_ROOT=/usr" >> $GITHUB_OUTPUT | ||
|
|
||
| # macOS: Install via homebrew | ||
| - name: Install CURL for macOS | ||
| if: runner.os == 'macOS' | ||
| id: brew-action | ||
| shell: bash | ||
| run: | | ||
| brew install curl | ||
| echo "CURL_ROOT=$(brew --prefix curl)" >> $GITHUB_OUTPUT | ||
|
|
||
| # Windows: Build CURL from source with MSVC using helper script | ||
| - name: Install CURL for Windows | ||
| if: runner.os == 'Windows' | ||
| id: windows-action | ||
| shell: pwsh | ||
| run: | | ||
| # Use the build script from the repository | ||
| & "${{ github.workspace }}\scripts\build-curl-windows.ps1" -Version "8.11.1" -InstallPrefix "C:\curl-install" | ||
|
|
||
| if ($LASTEXITCODE -ne 0) { | ||
| Write-Error "CURL build failed" | ||
| exit 1 | ||
| } | ||
|
|
||
| echo "CURL_ROOT=C:\curl-install" >> $env:GITHUB_OUTPUT | ||
|
|
||
| - name: Determine root | ||
| id: determine-root | ||
| shell: bash | ||
| run: | | ||
| if [ ! -z "$ROOT_APT" ]; then | ||
| echo "CURL_ROOT=$ROOT_APT" >> $GITHUB_OUTPUT | ||
| echo Setting CURL_ROOT to "$ROOT_APT" | ||
| elif [ ! -z "$ROOT_BREW" ]; then | ||
| echo "CURL_ROOT=$ROOT_BREW" >> $GITHUB_OUTPUT | ||
| echo Setting CURL_ROOT to "$ROOT_BREW" | ||
| elif [ ! -z "$ROOT_WINDOWS" ]; then | ||
| echo "CURL_ROOT=$ROOT_WINDOWS" >> $GITHUB_OUTPUT | ||
| echo Setting CURL_ROOT to "$ROOT_WINDOWS" | ||
| fi | ||
| env: | ||
| ROOT_APT: ${{ steps.apt-action.outputs.CURL_ROOT }} | ||
| ROOT_BREW: ${{ steps.brew-action.outputs.CURL_ROOT }} | ||
| ROOT_WINDOWS: ${{ steps.windows-action.outputs.CURL_ROOT }} |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.