chore: checkpoint before Python removal

This commit is contained in:
2026-03-26 22:33:59 +00:00
parent 683cec9307
commit e568ddf82a
29972 changed files with 11269302 additions and 2 deletions

1
vendor/httparse/.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
github: [seanmonstar]

281
vendor/httparse/.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,281 @@
name: CI
on:
pull_request:
push:
branches:
- master
env:
RUST_BACKTRACE: 1
jobs:
ci-pass:
name: CI is green
runs-on: ubuntu-latest
needs:
- test
- simd
- check_x86
- aarch64
- msrv_x64
- msrv_aarch64
- miri
- clippy_check
steps:
- run: exit 0
test:
name: Test ${{ matrix.rust }} on ${{ matrix.os }}
strategy:
matrix:
rust:
- stable
- beta
- nightly
os:
- ubuntu-latest
- windows-latest
- macOS-latest
include:
- rust: nightly
benches: true
runs-on: ${{ matrix.os }}
env:
CARGO_CFG_HTTPARSE_DISABLE_SIMD: 1
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Rust (${{ matrix.rust }})
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- name: no_std
uses: actions-rs/cargo@v1
with:
command: build
args: --no-default-features
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
- name: Test all benches
if: matrix.benches
uses: actions-rs/cargo@v1
with:
command: test
args: --benches
simd:
name: SIMD ${{ matrix.target_feature }} on ${{ matrix.rust }}
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- stable
- beta
- nightly
target_feature:
- "+sse4.2"
- "+avx2"
- "+sse4.2,+avx2"
disable_compiletime:
- 0
- 1
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Rust (${{ matrix.rust }})
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
env:
RUSTFLAGS: -C target_feature=${{ matrix.target_feature }}
CARGO_CFG_HTTPARSE_DISABLE_SIMD_COMPILETIME: ${{ matrix.disable_compiletime }}
check_x86:
name: check x86
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
target: i686-unknown-linux-musl
- name: Test without SIMD
uses: actions-rs/cargo@v1
with:
command: test
args: --target i686-unknown-linux-musl
env:
CARGO_CFG_HTTPARSE_DISABLE_SIMD_COMPILETIME: 1
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --target i686-unknown-linux-musl
msrv_x64:
name: msrv (x64)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.47.0
override: true
# Only build, dev-dependencies don't compile on 1.47.0
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
# This tests that aarch64 gracefully fallbacks to SWAR if neon_intrinsics aren't available (<1.59)
msrv_aarch64:
name: msrv (aarch64)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install cross-compiling dependencies
run: |
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.47.0
override: true
target: aarch64-unknown-linux-gnu
# Only build, dev-dependencies don't compile on 1.47.0
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --target aarch64-unknown-linux-gnu
clippy_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run clippy
run: cargo clippy --all-targets --all-features
miri:
name: Test with Miri
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
components: miri
override: true
- name: Test
run: cargo miri test
#
# mirai:
# name: MIRAI static analysis
# runs-on: ubuntu-latest
#
# steps:
# - name: Checkout
# uses: actions/checkout@v1
#
# - name: Install Rust
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: nightly-2023-05-09
# components: clippy, rustfmt, rustc-dev, rust-src, rust-std, llvm-tools-preview
# override: true
#
# - name: install mirai
# run: cargo install --locked --git https://github.com/facebookexperimental/MIRAI/ mirai
# env:
# # MIRAI_FLAGS: --diag=(default|verify|library|paranoid)
# MIRAI_FLAGS: --diag=default
#
# - name: cargo mirai
# run: cargo mirai --lib
aarch64:
name: Test aarch64 (neon)
runs-on: ubuntu-latest
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
target: aarch64-unknown-linux-gnu
- name: Install QEMU and dependencies
run: |
sudo apt-get update
sudo apt-get install -y qemu-user gcc-aarch64-linux-gnu
- name: Build tests
run: cargo build --tests --target aarch64-unknown-linux-gnu
- name: Run tests with QEMU
run: |
test_binaries=$(find target/aarch64-unknown-linux-gnu/debug/deps/ -type f -executable -name 'httparse-*')
if [ -n "$test_binaries" ]; then
for test_binary in $test_binaries
do
echo "Running tests in ${test_binary}"
/usr/bin/qemu-aarch64 -L /usr/aarch64-linux-gnu/ "${test_binary}"
done
else
echo "No test binaries found."
fi

View File

@@ -0,0 +1,123 @@
name: CI Benchmarks
on:
pull_request:
branches: [master]
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-C target-cpu=native"
jobs:
benchmark:
name: Run benchmarks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Install critcmp
run: cargo install critcmp
- name: Run benchmarks (master)
run: |
git checkout master
cargo bench --bench parse -- --save-baseline master
- name: Run benchmarks (PR)
run: |
git checkout ${{ github.event.pull_request.head.sha }}
cargo bench --bench parse -- --save-baseline pr-${{ github.event.pull_request.number }}-${{ github.event.pull_request.head.sha }}
- name: Compare benchmarks
run: |
critcmp -t 5 master pr-${{ github.event.pull_request.number }}-${{ github.event.pull_request.head.sha }}
benchmark-x64:
name: Run x64 benchmarks
runs-on: ubuntu-latest
strategy:
matrix:
feature: [swar, sse42, avx2]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Install critcmp
run: cargo install critcmp
- name: Run benchmarks (master)
run: |
git checkout master
cargo bench --bench parse -- --save-baseline master-${{ matrix.feature }}
env:
CARGO_CFG_HTTPARSE_DISABLE_SIMD: ${{ matrix.feature == 'swar' && '1' || '0' }}
RUSTFLAGS: ${{ matrix.feature != 'swar' && format('-C target-feature=+{0}', matrix.feature) || '' }}
- name: Run benchmarks (PR)
run: |
git checkout ${{ github.event.pull_request.head.sha }}
cargo bench --bench parse -- --save-baseline pr-${{ github.event.pull_request.number }}-${{ github.event.pull_request.head.sha }}-${{ matrix.feature }}
env:
CARGO_CFG_HTTPARSE_DISABLE_SIMD: ${{ matrix.feature == 'swar' && '1' || '0' }}
RUSTFLAGS: ${{ matrix.feature != 'swar' && format('-C target-feature=+{0}', matrix.feature) || '' }}
- name: Compare benchmarks
run: |
critcmp -t 5 master-${{ matrix.feature }} pr-${{ github.event.pull_request.number }}-${{ github.event.pull_request.head.sha }}-${{ matrix.feature }}
benchmark-aarch64:
name: Run aarch64 benchmarks
runs-on: macos-latest
strategy:
matrix:
feature: [swar, neon]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Install critcmp
run: cargo install critcmp
- name: Run benchmarks (master)
run: |
git checkout master
cargo bench --bench parse -- --save-baseline master-aarch64-${{ matrix.feature }}
env:
CARGO_CFG_HTTPARSE_DISABLE_SIMD: ${{ matrix.feature == 'swar' && '1' || '0' }}
RUSTFLAGS: ${{ matrix.feature == 'neon' && '-C target-feature=+neon' || '' }}
- name: Run benchmarks (PR)
run: |
git checkout ${{ github.event.pull_request.head.sha }}
cargo bench --bench parse -- --save-baseline pr-${{ github.event.pull_request.number }}-${{ github.event.pull_request.head.sha }}-aarch64-${{ matrix.feature }}
env:
CARGO_CFG_HTTPARSE_DISABLE_SIMD: ${{ matrix.feature == 'swar' && '1' || '0' }}
RUSTFLAGS: ${{ matrix.feature == 'neon' && '-C target-feature=+neon' || '' }}
- name: Compare benchmarks
run: |
critcmp -t 5 master-aarch64-${{ matrix.feature }} pr-${{ github.event.pull_request.number }}-${{ github.event.pull_request.head.sha }}-aarch64-${{ matrix.feature }}

View File

@@ -0,0 +1,26 @@
name: CIFuzz
on: [pull_request]
jobs:
Fuzzing:
runs-on: ubuntu-latest
steps:
- name: Build Fuzzers
id: build
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
oss-fuzz-project-name: 'httparse'
dry-run: false
language: rust
- name: Run Fuzzers
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'httparse'
fuzz-seconds: 300
dry-run: false
language: rust
- name: Upload Crash
uses: actions/upload-artifact@v4
if: failure() && steps.build.outcome == 'success'
with:
name: artifacts
path: ./out/artifacts