- 
                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.