chez-httparse 0.5.0

HTTP/1.x parser for Chez Scheme, in portable R6RS

A byte-level HTTP/1.x request and response parser. It is resumable: feed it bytes as they arrive, split anywhere, and it calls back with events and with spans into your own bytevector. It never copies or keeps your input.

It is checked against llhttp's own test corpus, byte for byte, at every chunk size, and ships a URL parser beside it. The libraries an embedder imports need only (rnrs) and the generator's runtime.

$ akku update
$ akku install chez-httparse
$ .akku/env
Authors

Kiyomi Computation Systems LLC

License

BSD-3-Clause

Dependencies

Source code

https://github.com/Kiyomi-Computation-Systems/chez-httparse.git git
52a62e5cf8995c1ba2e3fa5162ba174939d8d87b
Tag: v0.5.0

Package contents

  • (generated httparse-message) R6
    • → httparse-message-machine
    • ← (rnrs) R6
    • ← (byte-machine runtime)
  • (generated httparse-url) R6
    • → httparse-url-machine
    • ← (rnrs) R6
    • ← (byte-machine runtime)
  • (httparse decisions) R6
    • → F-CONNECTION-KEEP-ALIVE F-CONNECTION-CLOSE F-CONNECTION-UPGRADE F-CHUNKED F-UPGRADE F-CONTENT-LENGTH F-SKIP-BODY F-TRAILING F-TRANSFER-ENCODING should-keep-alive? message-needs-eof? httparse-decisions-error? httparse-decisions-error-detail
    • ← (rnrs) R6
  • (httparse grammar) R6
    • → make-message-machine httparse-tchar-bytes httparse-header-bytes httparse-method-names httparse-method-numbers httparse-http-methods httparse-rtsp-methods httparse-ice-methods method-name->identifier
    • ← (rnrs) R6
    • ← (byte-machine graph)
    • ← (httparse modes)
    • ← (httparse methods)
    • ← (httparse decisions)
    • ← (httparse url-grammar)
  • (httparse methods) R6
    • → httparse-method-names httparse-method-numbers httparse-method-name httparse-method-number httparse-methods-error? httparse-methods-error-detail
    • ← (rnrs) R6
  • (httparse modes) R6
    • → httparse-lenient-flag-bits httparse-lenient-flag-names httparse-lenient-bit httparse-lenient-flags-value httparse-lenient-flags-width httparse-message-type-names httparse-message-type-value httparse-modes-error? httparse-modes-error-detail
    • ← (rnrs) R6
  • (httparse url-grammar) R6
    • → make-url-machine url-subgraph url-error-declarations url-span-parts httparse-url-char-bytes httparse-userinfo-bytes httparse-url-alpha-bytes
    • ← (rnrs) R6
    • ← (byte-machine graph)
  • (httparse test harness) R6 Chez Scheme Test
    • → harness-begin harness-finish harness-summary harness-exit-status harness-status-pass harness-status-failed harness-status-harness-error harness-status-provenance harness-empty-selection-error harness-empty-selection-diagnosis harness-group harness-case check check-equal check-not-equal check-fail check-raises with-cleanup harness-probe harness-set-filter! probe-cases probe-failed-cases probe-checks probe-failures probe-errors probe-skipped probe-cleanup-failures probe-raised? probe-failure-records failure-record-id failure-record-what failure-record-detail harness-string-contains? harness-join harness-split harness-take harness-member? harness-failure-context harness-normalize-filter harness-counters harness-restore-counters! harness-capture-state harness-fingerprint-bytevector harness-fingerprint-combine harness-fingerprint->string harness-fingerprint-file harness-bytes->string harness-provenance-diagnosis harness-verify-provenance! harness-provenance-reachability-diagnosis adapter-runtime-name adapter-runtime-version adapter-machine-type adapter-os adapter-architecture adapter-execution-mode adapter-environment-variable adapter-exit adapter-value->string adapter-describe-condition adapter-file-bytes adapter-run-command adapter-bytes-allocated adapter-real-time adapter-flush-output adapter-machine-type->os adapter-machine-type->architecture modulo quotient remainder
    • ← (rnrs) R6
    • ← (httparse test fingerprint)
    • ← (rnrs r5rs) R6
    • ← (chezscheme) Built-in
  • (httparse test adapter) R6 Test
    • → adapter-trace-names adapter-error-codes adapter-state-fields adapter-count-field adapter-finish-states adapter-finish-statuses adapter-message-types adapter-pause-points adapter-lenient-flags adapter-parser-inits adapter-url-trace-names trace-recorder-url-bindings adapter-event-for adapter-error-event adapter-finish-event make-trace-recorder trace-recorder-bindings trace-recorder-events trace-recorder-note-error! trace-recorder-note-paused! trace-recorder-note-requested-pause! trace-recorder-note-finish! adapter-error? adapter-error-detail
    • ← (rnrs) R6
    • ← (httparse test trace-format)
    • ← (httparse modes)
    • ← (byte-machine runtime)
  • (httparse test conformance) R6 Test
    • → corpus-scan-sizes corpus-chunk-bounds trace-compare mismatch? mismatch-index mismatch-expected mismatch-actual mismatch-reason conformance-error? conformance-error-detail
    • ← (rnrs) R6
    • ← (httparse test corpus-load)
  • (httparse test corpus-decode) R6 Test
    • → corpus-decode-input corpus-decode-error? corpus-decode-error-detail corpus-strip-one-trailing-newline corpus-remove-escaped-newlines corpus-normalize-newlines corpus-expand-char-escapes corpus-expand-hex-escapes corpus-expand-octal-escapes
    • ← (rnrs) R6
  • (httparse test corpus-load) R6 Test
    • → corpus-parse-file fixture? fixture-line fixture-title fixture-kind fixture-meta fixture-input-text fixture-expected fixture-meta-ref expectation? expectation-pattern? expectation-text corpus-load-error? corpus-load-error-detail fixture-init-words fixture-lenient-flags corpus-split-lines corpus-parse-meta
    • ← (rnrs) R6
  • (httparse test drive) R6 Test
    • → drive-trace drive-init drive-refusal? drive-refusal-detail drive-chunk-ladder drive-feed! drive-requested-pause? drive-result
    • ← (rnrs) R6
    • ← (httparse test adapter)
    • ← (httparse test trace-format)
    • ← (httparse test conformance)
    • ← (byte-machine runtime)
  • (httparse test fingerprint) R6 Test
    • → harness-fingerprint-bytevector harness-fingerprint-file harness-fingerprint-combine harness-fingerprint->string
    • ← (rnrs) R6
    • ← (rnrs r5rs) R6
  • (httparse test generate) R6 Test
    • → make-gen-case gen-case? gen-case-kind gen-case-bytes gen-case-origin gen-case-flags generate-safe-byte? generate-safe-bytes? generate-structured generate-mutants generate-urls generate-lenient generate-lenient-schedule generate-mutate generate-mutations generate-error? generate-error-detail
    • ← (rnrs) R6
    • ← (httparse test prng)
    • ← (httparse modes)
  • (httparse test harness) R6 Chez Scheme Test
    • → harness-begin harness-finish harness-summary harness-exit-status harness-status-pass harness-status-failed harness-status-harness-error harness-status-provenance harness-empty-selection-error harness-empty-selection-diagnosis harness-group harness-case check check-equal check-not-equal check-fail check-raises with-cleanup harness-probe harness-set-filter! probe-cases probe-failed-cases probe-checks probe-failures probe-errors probe-skipped probe-cleanup-failures probe-raised? probe-failure-records failure-record-id failure-record-what failure-record-detail harness-string-contains? harness-join harness-split harness-take harness-member? harness-failure-context harness-normalize-filter harness-counters harness-restore-counters! harness-capture-state harness-fingerprint-bytevector harness-fingerprint-combine harness-fingerprint->string harness-fingerprint-file harness-bytes->string harness-provenance-diagnosis harness-verify-provenance! harness-provenance-reachability-diagnosis adapter-runtime-name adapter-runtime-version adapter-machine-type adapter-os adapter-architecture adapter-execution-mode adapter-environment-variable adapter-exit adapter-value->string adapter-describe-condition adapter-file-bytes adapter-run-command adapter-bytes-allocated adapter-real-time adapter-flush-output adapter-machine-type->os adapter-machine-type->architecture modulo quotient remainder
    • ← (rnrs) R6
    • ← (httparse test fingerprint)
    • ← (rnrs r5rs) R6
    • ← (chezscheme) Built-in
  • (httparse test oracle) R6 Test
    • → oracle-line->event oracle-normalize oracle-split-scans oracle-hex-encode oracle-hex-decode oracle-error? oracle-error-detail
    • ← (rnrs) R6
    • ← (httparse test trace-format)
  • (httparse test prng) R6 Test
    • → make-prng prng-next
    • ← (rnrs) R6
  • (httparse test ratchet) R6 Test
    • → ratchet-parse ratchet-entry? ratchet-entry-status ratchet-entry-id ratchet-entry-note ratchet-fixture-id ratchet-fixture-class ratchet-implemented-lenient ratchet-error? ratchet-error-detail
    • ← (rnrs) R6
    • ← (httparse test corpus-load)
  • (httparse test reference) R6 Test
    • → library-datum->api markdown->reference-analysis reference-analysis? reference-analysis-modules reference-analysis-entries reference-analysis-problems reference-analysis-index reference-entry? reference-entry-name reference-entry-kind reference-entry-heading reference-entry-modules reference-entry-body? reference-entry-availability-count reference-slug reference-diagnostics
    • ← (rnrs) R6
  • (httparse test trace-format) R6 Test
    • → make-trace-span make-trace-mark make-trace-mark-at-null trace-format trace-expand-span trace-normalize
    • ← (rnrs) R6

Version history

  • 2026-10-16 ~ 0.5.0