feat(http2) Client Support (#6761)

* init

* WIP fix post data/refactor

* make it compile again

* more things

* undo padding and continue + fix posting + update lshpack

* re-add fixes

* really simple tests + fixes

* add aborted event

* fix trailers

* add getDefaultSettings, getPackedSettings and getUnpackedSettings

* fix + fmt

* fixes

* fix enablePush o be boolean

* fix sendTrailers

* fmt

* fix goaway, fix some error messages

* oops

* revert some changes

* more reverts

* WIP

* get CMAKE building lspack + ping behavior

* remove files that should not be added anymore

* remove old out files

* remove old file

* fix header reduce

* bunch of fixes

* fix socket unref

* fix abort signal, rebase and fmt

* socket unref tests

* oops re-add cmake

* fix stream state

* more tests and fixes

* fixes and ping tests

* lshpack in Dockerfile

* just copy lshpack

* oops

* fix end

* wantTrailers

* encode/decode fixes + grpc

* channel credentials test

* rebase

* support h2c

* fix h2c

* fix h2c connect event + h2c tests

* 'copy ls-hpack

* ls-hpack build sh

* oops

* changing CMake + Docker

* add ps1 build for ls-hpack fix clean

* optimizations + fixes

* remove protect/unprotect from handlers

* more consistent errors

* fix error code

* oops

* add goaway tests

* oops uncoment tests

* better errors more tests

* add broken priority frame

* better memory leak, some fixes and less flask tests

* zig update .Big -> .big

* closer threshold + h2 fix

* remove log

* test should not be flask

* increase timeout on leak memory test

* windows build

* less flasky

* always 127.0.0.1

* [autofix.ci] apply automated fixes

* remove .call and use primordials

* apply socket fix

* fix win-build

* should properly mark inactive

* postgres fix

* increase deadline

* test tests

* high light deadline timeouts

* event loop test

* make memory leak test faster

* use buffer on payload test

* check for socket.data before use

* reduce iterations to see if timeout on mac intel

* fix assertions

* avoid localhost and simplify things

* refactor memory leak test

* Update src/js/node/tls.js

* fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cirospaciari <ciro.spaciai@gmail.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
This commit is contained in:
Ciro Spaciari
2023-11-17 23:14:54 -03:00
committed by GitHub
parent 6c200c089c
commit c23579d66c
48 changed files with 7103 additions and 818 deletions

View File

@@ -77,6 +77,9 @@ Build-Dependency `
Build-Dependency `
-Script "libuv" `
-Outputs @("libuv.lib")
Build-Dependency `
-Script "lshpack" `
-Outputs @("lshpack.lib")
if (!($Script:DidAnything)) {
Write-Host "(run with -Force to rebuild all)"

View File

@@ -62,6 +62,7 @@ dep mimalloc libmimalloc.a libmimalloc.o
dep tinycc libtcc.a
dep zlib libz.a
dep zstd libzstd.a
dep lshpack liblshpack.a
if [ "$BUILT_ANY" -eq 0 ]; then
printf "(run with -f to rebuild)\n"

18
scripts/build-lshpack.ps1 Normal file
View File

@@ -0,0 +1,18 @@
$ErrorActionPreference = 'Stop' # Setting strict mode, similar to 'set -euo pipefail' in bash
. (Join-Path $PSScriptRoot "env.ps1")
Push-Location (Join-Path $BUN_DEPS_DIR 'ls-hpack')
try {
Set-Location (mkdir -Force build)
Run cmake .. @CMAKE_FLAGS `
-DCMAKE_BUILD_TYPE=Release `
-DLSHPACK_XXH=ON `
-DSHARED=0
Run cmake --build . --clean-first --config Release
Copy-Item ../Release/ls-hpack.lib $BUN_DEPS_OUT_DIR/lshpack.lib
Write-Host "-> lshpack.lib"
} finally { Pop-Location }

20
scripts/build-lshpack.sh Normal file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -euxo pipefail
source $(dirname -- "${BASH_SOURCE[0]}")/env.sh
mkdir -p $BUN_DEPS_OUT_DIR
cd $BUN_DEPS_DIR/ls-hpack
rm -rf CMakeCache* CMakeFiles
cmake "${CMAKE_FLAGS[@]}" . \
-DCMAKE_BUILD_TYPE=Release \
-DLSHPACK_XXH=ON \
-DSHARED=0 \
-GNinja
ninja
cp ./libls-hpack.a $BUN_DEPS_OUT_DIR/liblshpack.a

View File

@@ -26,4 +26,5 @@ Reset-Submodule $Deps/mimalloc
Reset-Submodule $Deps/picohttpparser
Reset-Submodule $Deps/tinycc
Reset-Submodule $Deps/zlib
Reset-Submodule $Deps/zstd
Reset-Submodule $Deps/zstd
Reset-Submodule $Deps/ls-hpack

View File

@@ -24,4 +24,5 @@ git_reset $BUN_DEPS_DIR/mimalloc
git_reset $BUN_DEPS_DIR/picohttpparser
git_reset $BUN_DEPS_DIR/tinycc
git_reset $BUN_DEPS_DIR/zlib
git_reset $BUN_DEPS_DIR/zstd
git_reset $BUN_DEPS_DIR/zstd
git_reset $BUN_DEPS_DIR/ls-hpack