A rapid http(s) benchmark tool written in Go

Overview

gonetx/httpit

httpit is a rapid http(s) benchmark tool which on top of fasthttp. Also thanks to cobra and bubbletea.

Installation

Get binaries from releases or just run go get -u github.com/gonetx/httpit.

Usage

Usage:
  httpit url [flags]

Flags:
  -b, --body string         Http request body
      --cert string         Path to the client's TLS Certificate
  -c, --connections int     Maximum number of concurrent connections (default 128)
  -a, --disableKeepAlives   Disable HTTP keep-alive, if true, will set header Connection: close
  -d, --duration duration   Duration of test (default 10s)
  -f, --file string         Read http request body from file path
  -H, --header strings      HTTP request header with format "K: V", can be repeated
  -h, --help                help for httpit
      --host string         Http request host
      --httpProxy string    Http proxy address
  -k, --insecure            Controls whether a client verifies the server's certificate chain and host name
      --key string          Path to the client's TLS Certificate Private Key
  -X, --method string       Http request method (default "GET")
  -p, --pipeline            Use fasthttp pipeline client
  -n, --requests int        Number of requests
      --socksProxy string   Socks proxy address
  -s, --stream              Use stream body to reduce memory usage
  -t, --timeout duration    Socket/request timeout (default 3s)
  -v, --version             version for httpit

Override host

Use --host to override Host header for the use case like curl "http://127.0.0.1" -H "Host: www.example.com" to bypass DNS resolving.

Proxy

Use --httpProxy and --socksProxy to specific proxies for some rare cases.

Pipeline

Use -p|--pipeline to specific fasthttp pipeline client.

Examples

Use duration

httpit -X GET "http://httpbin.org/get" -H "accept: application/json" -c2 -d3s

duration

Use count

httpit -X GET "http://httpbin.org/get" -H "accept: application/json" -c2 -n15

count

Comments
  • build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.42.0

    build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.42.0

    Bumps github.com/valyala/fasthttp from 1.28.0 to 1.42.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.42.0

    • 4995135 feat: add ShutdownWithContext (#1383) (kinggo)
    • 7b3bf58 style: modify typo and remove repeated type conversions (#1437) (kinggo)
    • 8f43443 Wait for the response of pipelineWork in background and return it to pool (#1436) (Andy Pan)
    • c367454 Fix some potential pool leaks (#1433) (Andy Pan)
    • b32a3dd Use time.Until(deadline) instead of -time.Since(deadline) (#1434) (Andy Pan)
    • 8a60232 Assert with *net.TCPConn instead of *net.TCPListener in acceptConn() for TCP sockets (#1432) (Andy Pan)
    • c57a2ce Make sure nothing is nil in tmp slice (#1423) (hs son)
    • f095481 Request.SetTimeout (#1415) (brian-armstrong-discord)
    • c88dd5d fix form empty field error when used with pipe (#1417) (nick9822)
    • a468a7d feat: support mulit/range (#1398) (byene0923)
    • 3963a79 feat: add PeekKeys and PeekTrailerKeys (#1405) (kinggo)
    • eca86de fix: (#1410) (byene0923)
    • e214137 fix: ignore body should not set content-length of streaming (#1406) (byene0923)

    v1.41.0

    • 128e9b3 optimize: adjust the behavior of PeekAll based on VisitAll (#1403) (kinggo)
    • 2c8ce3b feat: add header.PeekAll (#1394) (kinggo)
    • d404f2d make RequestCtx's userdata accept keys that are of type: interface{} (#1387) (pj)
    • bcf7e8e test: merge test in adaptor_test.go (#1381) (kinggo)
    • 31fdc79 resolve CVE-2022-27664 (#1377) (Craig O'Donnell)
    • 40eec0b byte to string unsafe conversion in fasthttpadaptor ConvertRequest method (#1375) (Emre Savcı)
    • a696949 Deprecate Go 1.15 (#1379) (Aoang)

    v1.40.0

    • 2f1e949 Improve isTLSAlready check (Erik Dubbelboer)
    • 404c8a8 Chore (#1365) (tyltr)
    • 79ccfff Don't use tls ClientSessionCache (Erik Dubbelboer)
    • 28bec71 Fix "use of closed network connection" error check (Erik Dubbelboer)
    • 3b147b7 Fix(server): reset maxRequestBodySize to the server's config (#1360) (Geralt X Li)
    • af94725 Reduce slice growth in adaptor (#1356) (Qing Moy)

    v1.39.0

    • ea60524 Add Go 1.19 Support (#1355) (Aoang)
    • a5f448f Improve Client timeout (#1346) (Erik Dubbelboer)
    • 42f83c6 Prevent overflow and panic on large HTTP responses (#1351) (mathew)
    • f3513cc Introduce FS.CompressRoot (#1331) (mojatter)
    • c94be05 use timeout insteadof read/writetimeout when timeout lower than read/… (#1336) (fare83)
    • b23c5e9 Close new connections after 5s in closeIdleConns (Erik Dubbelboer)
    • 5b0cbf2 Fix apparent documentation typo (#1330) (kayos)

    v1.38.0

    • 16d30c4 Support AIX SO_REUSEADDR and SO_REUSEPORT (#1328) (zhangyongding)
    • bc24f9d Consolidate TCPKeepalive in server.Serve (#1320) (#1324) (Y.Horie)
    • 8a32089 Add ConnPoolStrategy field to client (#1317) (Thearas)
    • 35aca7b BodyDecoded() for request and responses (#1308) (Sergey Ponomarev)
    • 66cd502 header.go Referer() optimize (#1313) (Sergey Ponomarev)
    • c9f43ea Response.ContentEncoding(): store as field and avoid using Header.SetCanonical() (#1311) (Sergey Ponomarev)
    • de18824 Optimize server connection close logic (#1310) (Sergey Ponomarev)

    ... (truncated)

    Commits
    • 4995135 feat: add ShutdownWithContext (#1383)
    • 7b3bf58 style: modify typo and remove repeated type conversions (#1437)
    • 8f43443 Wait for the response of pipelineWork in background and return it to pool (#1...
    • c367454 Fix some potential pool leaks (#1433)
    • b32a3dd Use time.Until(deadline) instead of -time.Since(deadline) (#1434)
    • 8a60232 Assert with *net.TCPConn instead of *net.TCPListener in acceptConn() for TCP ...
    • c57a2ce Make sure nothing is nil in tmp slice (#1423)
    • f095481 Request.SetTimeout (#1415)
    • c88dd5d fix form empty field error when used with pipe (#1417)
    • a468a7d feat: support mulit/range (#1398)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/charmbracelet/bubbletea from 0.13.2 to 0.23.0

    build(deps): bump github.com/charmbracelet/bubbletea from 0.13.2 to 0.23.0

    Bumps github.com/charmbracelet/bubbletea from 0.13.2 to 0.23.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbletea's releases.

    v0.23.0

    If you are closely following Bubble Tea's development, you may have already noticed that we have been really busy fixing a lot of issues and merged more than just a couple of feature requests in recent weeks. This v0.23.0 release is in fact our biggest update since the initial release of the package: in the last 3 months over 100 commits have reached us by more than 30 individual contributors! Thank you everyone! 💕

    Here's a quick overview of what has changed:

    Custom Outputs

    Don't want to render your beautiful TUI to stdout? A buffer or an alternative file descriptor like stderr seems more appropriate? We got you covered now:

    Render to stderr

    p := tea.NewProgram(model, tea.WithOutput(os.Stderr))
    

    Render to a Buffer

    var buf bytes.Buffer
    p := tea.NewProgram(model, tea.WithOutput(&buf))
    

    Run Like the Wind

    We've introduced the aptly named method Program.Run which replaces and deprecates the existing Program.Start and Program.StartReturningModel methods. This unifies and clarifies the blocking behavior of the Bubble Tea program execution.

    The old methods will continue to work for now, but please update your programs accordingly:

    p := tea.NewProgram(model, tea.WithOutput(os.Stderr))
    model, err := p.Run() // instead of p.Start or p.StartReturningModel
    ...
    

    Bug Fix Galore!

    The initialization and tear-down methods of tea.Program have been revised and some long-standing problems have been resolved. We couldn't list every single fix in the release notes, so please check out the full changelog below!

    🤗 Thanks

    We would like to particularly thank @​knz who is the sole author of more than a dozen PRs since the last release. Outstanding work!


    Changelog

    New

    • Render to custom outputs, io.Writers and buffers (tea.WithOutput)

    ... (truncated)

    Commits
    • 2d10416 [codespell]: Fix typos.
    • 741f2d3 fix: pass actual stdout's fd to command
    • 4f83c62 chore: apply ProgramOptions before checking context
    • 280bc6f docs: clean up readme
    • bc2befe docs: picture tag is causing display issues on Firefox
    • 3938164 docs: new readme footer
    • e15bcb7 feat: tea.WithContext ProgramOption to supply a context
    • 0f1ce7f fix: maintain cursor visibility across altscreen state switch
    • 918d357 feat: export BatchMsg
    • 80f44c9 fix: detect terminal size after exec
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.41.0

    build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.41.0

    Bumps github.com/valyala/fasthttp from 1.28.0 to 1.41.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.41.0

    • 128e9b3 optimize: adjust the behavior of PeekAll based on VisitAll (#1403) (kinggo)
    • 2c8ce3b feat: add header.PeekAll (#1394) (kinggo)
    • d404f2d make RequestCtx's userdata accept keys that are of type: interface{} (#1387) (pj)
    • bcf7e8e test: merge test in adaptor_test.go (#1381) (kinggo)
    • 31fdc79 resolve CVE-2022-27664 (#1377) (Craig O'Donnell)
    • 40eec0b byte to string unsafe conversion in fasthttpadaptor ConvertRequest method (#1375) (Emre Savcı)
    • a696949 Deprecate Go 1.15 (#1379) (Aoang)

    v1.40.0

    • 2f1e949 Improve isTLSAlready check (Erik Dubbelboer)
    • 404c8a8 Chore (#1365) (tyltr)
    • 79ccfff Don't use tls ClientSessionCache (Erik Dubbelboer)
    • 28bec71 Fix "use of closed network connection" error check (Erik Dubbelboer)
    • 3b147b7 Fix(server): reset maxRequestBodySize to the server's config (#1360) (Geralt X Li)
    • af94725 Reduce slice growth in adaptor (#1356) (Qing Moy)

    v1.39.0

    • ea60524 Add Go 1.19 Support (#1355) (Aoang)
    • a5f448f Improve Client timeout (#1346) (Erik Dubbelboer)
    • 42f83c6 Prevent overflow and panic on large HTTP responses (#1351) (mathew)
    • f3513cc Introduce FS.CompressRoot (#1331) (mojatter)
    • c94be05 use timeout insteadof read/writetimeout when timeout lower than read/… (#1336) (fare83)
    • b23c5e9 Close new connections after 5s in closeIdleConns (Erik Dubbelboer)
    • 5b0cbf2 Fix apparent documentation typo (#1330) (kayos)

    v1.38.0

    • 16d30c4 Support AIX SO_REUSEADDR and SO_REUSEPORT (#1328) (zhangyongding)
    • bc24f9d Consolidate TCPKeepalive in server.Serve (#1320) (#1324) (Y.Horie)
    • 8a32089 Add ConnPoolStrategy field to client (#1317) (Thearas)
    • 35aca7b BodyDecoded() for request and responses (#1308) (Sergey Ponomarev)
    • 66cd502 header.go Referer() optimize (#1313) (Sergey Ponomarev)
    • c9f43ea Response.ContentEncoding(): store as field and avoid using Header.SetCanonical() (#1311) (Sergey Ponomarev)
    • de18824 Optimize server connection close logic (#1310) (Sergey Ponomarev)

    v1.37.0

    • 66bc61e Add an option to allow empty root in the fsHandler (#1299) (RW)
    • 9961079 Fix userdata re-use after Remove (Erik Dubbelboer)

    v1.36.0

    • 7cc6f4c Fix DoTimeout Streaming body bug (Erik Dubbelboer)
    • 9a0b4d0 optimize (#1275) (tyltr)
    • e3d2512 optimize (#1272) (tyltr)
    • b40b5a4 Update tlsClientHandshake (#1263) (Mikhail Faraponov)
    • c7576cc Added Windows support and removed some panics (#1264) (Mauro Leggieri)
    • f0e1be5 add nil check of req.body and resp.body on ReleaseBody (#1266) (zzzzwc)

    v1.35.0

    • 7a5afdd Use %v for errors and %q for strings (#1262) (Erik Dubbelboer)
    • e4a541f support adding/removing clients from LBClient (#1243) (Cam Sweeney)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.40.0

    build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.40.0

    Bumps github.com/valyala/fasthttp from 1.28.0 to 1.40.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.40.0

    • 2f1e949 Improve isTLSAlready check (Erik Dubbelboer)
    • 404c8a8 Chore (#1365) (tyltr)
    • 79ccfff Don't use tls ClientSessionCache (Erik Dubbelboer)
    • 28bec71 Fix "use of closed network connection" error check (Erik Dubbelboer)
    • 3b147b7 Fix(server): reset maxRequestBodySize to the server's config (#1360) (Geralt X Li)
    • af94725 Reduce slice growth in adaptor (#1356) (Qing Moy)

    v1.39.0

    • ea60524 Add Go 1.19 Support (#1355) (Aoang)
    • a5f448f Improve Client timeout (#1346) (Erik Dubbelboer)
    • 42f83c6 Prevent overflow and panic on large HTTP responses (#1351) (mathew)
    • f3513cc Introduce FS.CompressRoot (#1331) (mojatter)
    • c94be05 use timeout insteadof read/writetimeout when timeout lower than read/… (#1336) (fare83)
    • b23c5e9 Close new connections after 5s in closeIdleConns (Erik Dubbelboer)
    • 5b0cbf2 Fix apparent documentation typo (#1330) (kayos)

    v1.38.0

    • 16d30c4 Support AIX SO_REUSEADDR and SO_REUSEPORT (#1328) (zhangyongding)
    • bc24f9d Consolidate TCPKeepalive in server.Serve (#1320) (#1324) (Y.Horie)
    • 8a32089 Add ConnPoolStrategy field to client (#1317) (Thearas)
    • 35aca7b BodyDecoded() for request and responses (#1308) (Sergey Ponomarev)
    • 66cd502 header.go Referer() optimize (#1313) (Sergey Ponomarev)
    • c9f43ea Response.ContentEncoding(): store as field and avoid using Header.SetCanonical() (#1311) (Sergey Ponomarev)
    • de18824 Optimize server connection close logic (#1310) (Sergey Ponomarev)

    v1.37.0

    • 66bc61e Add an option to allow empty root in the fsHandler (#1299) (RW)
    • 9961079 Fix userdata re-use after Remove (Erik Dubbelboer)

    v1.36.0

    • 7cc6f4c Fix DoTimeout Streaming body bug (Erik Dubbelboer)
    • 9a0b4d0 optimize (#1275) (tyltr)
    • e3d2512 optimize (#1272) (tyltr)
    • b40b5a4 Update tlsClientHandshake (#1263) (Mikhail Faraponov)
    • c7576cc Added Windows support and removed some panics (#1264) (Mauro Leggieri)
    • f0e1be5 add nil check of req.body and resp.body on ReleaseBody (#1266) (zzzzwc)

    v1.35.0

    • 7a5afdd Use %v for errors and %q for strings (#1262) (Erik Dubbelboer)
    • e4a541f support adding/removing clients from LBClient (#1243) (Cam Sweeney)
    • b4152d1 Only set RequestCtx.s once (Erik Dubbelboer)
    • d4c739e State active (#1260) (Erik Dubbelboer)
    • f3bce3a Add Go 1.18 support (#1253) (Aoang)
    • c674263 Fix race conditions in tests (Erik Dubbelboer)
    • 286828e add a test for AppendQuotedArg (#1255) (ZhangYunHao)
    • 2044e1e reduce unnessary type assart (#1254) (tyltr)
    • 3101938 Imporve AppendHTMLEscape fast path (#1249) (ZhangYunHao)
    • d1753f7 bytesconv: add appropriate build tags for s390x (#1250) (Nick Rosbrook)
    • 8f5e51f Add connection pool queuing strategies in HostClient. (#1238) (Y.Horie)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/charmbracelet/bubbletea from 0.13.2 to 0.22.1

    build(deps): bump github.com/charmbracelet/bubbletea from 0.13.2 to 0.22.1

    Bumps github.com/charmbracelet/bubbletea from 0.13.2 to 0.22.1.

    Release notes

    Sourced from github.com/charmbracelet/bubbletea's releases.

    v0.22.1

    Mutli-Byte Character Support on Windows

    This is a small release with a big impact for Chinese, Japanese, and Korean users on Windows. The long as short of it is that if you’re using a multi-byte character set that’s not UTF-8, Bubble Tea will covert stuff for you so things work as expected. For details see charmbracelet/bubbletea#343.

    🤗 Enormous thanks to @​mattn for the contribution as well as his Go libraries that make CJK support in the Charm ecosystem possible.

    👾 Also, thanks to @​aklyachkin, if Bubble Tea on AIX is something you want your dream is a now a reality.

    Changelog

    Full Changelog: https://github.com/charmbracelet/bubbletea/compare/v0.22.0...v0.22.1


    Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Slack.

    v0.22.0

    Unmanaged Output

    Now you can print unmanaged output above your inline applications. This means you can print stuff above your app that won't be cleared on the next render. It’s super useful for cases where you want to build an apt-like package manager.

    Let’s Print

    This release introduces two new Cmds that print output above your inline Bubble Tea program:

    tea.Println("Hello, Bubble Tea")
    tea.Printf("%s, %s", "Hello", "Bubble Tea")
    

    Use it anytime you want to add log-type info to the terminal’s scrollback buffer, such as building your own package manager 📦. And keep in mind that these methods are no-op’s in altscreen mode.

    For details see the full example and the docs.

    🤗 Thanks

    @​fiws has been bugging us to implement this forever and then @​Adjective-Object swooped in and did it with style and grace! It’s been a great collaboration all around.


    Changelog

    ... (truncated)

    Commits
    • 31800cd fix(examples): remove unused type in textarea example
    • 6b68505 fix: support multi-byte strings on Windows (#343)
    • a7f50a6 fix(split-editors): resize issue
    • 4e9a56f docs: Add CONTRIBUTING.md (#405)
    • 8b7b791 doc: Add table example
    • 6faba76 docs: example interacting with tabs using lipgloss
    • 9b459e5 docs: Add mandelbrot-cli to Bubble Tea in the Wild (#385)
    • ae6fcd3 docs: README progress-download folder + ignore
    • 7c6ebc3 Doc: Add Noted to README.md
    • 99ed096 Add sku to Bubble Tea in the Wild
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.39.0

    build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.39.0

    Bumps github.com/valyala/fasthttp from 1.28.0 to 1.39.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.39.0

    • ea60524 Add Go 1.19 Support (#1355) (Aoang)
    • a5f448f Improve Client timeout (#1346) (Erik Dubbelboer)
    • 42f83c6 Prevent overflow and panic on large HTTP responses (#1351) (mathew)
    • f3513cc Introduce FS.CompressRoot (#1331) (mojatter)
    • c94be05 use timeout insteadof read/writetimeout when timeout lower than read/… (#1336) (fare83)
    • b23c5e9 Close new connections after 5s in closeIdleConns (Erik Dubbelboer)
    • 5b0cbf2 Fix apparent documentation typo (#1330) (kayos)

    v1.38.0

    • 16d30c4 Support AIX SO_REUSEADDR and SO_REUSEPORT (#1328) (zhangyongding)
    • bc24f9d Consolidate TCPKeepalive in server.Serve (#1320) (#1324) (Y.Horie)
    • 8a32089 Add ConnPoolStrategy field to client (#1317) (Thearas)
    • 35aca7b BodyDecoded() for request and responses (#1308) (Sergey Ponomarev)
    • 66cd502 header.go Referer() optimize (#1313) (Sergey Ponomarev)
    • c9f43ea Response.ContentEncoding(): store as field and avoid using Header.SetCanonical() (#1311) (Sergey Ponomarev)
    • de18824 Optimize server connection close logic (#1310) (Sergey Ponomarev)

    v1.37.0

    • 66bc61e Add an option to allow empty root in the fsHandler (#1299) (RW)
    • 9961079 Fix userdata re-use after Remove (Erik Dubbelboer)

    v1.36.0

    • 7cc6f4c Fix DoTimeout Streaming body bug (Erik Dubbelboer)
    • 9a0b4d0 optimize (#1275) (tyltr)
    • e3d2512 optimize (#1272) (tyltr)
    • b40b5a4 Update tlsClientHandshake (#1263) (Mikhail Faraponov)
    • c7576cc Added Windows support and removed some panics (#1264) (Mauro Leggieri)
    • f0e1be5 add nil check of req.body and resp.body on ReleaseBody (#1266) (zzzzwc)

    v1.35.0

    • 7a5afdd Use %v for errors and %q for strings (#1262) (Erik Dubbelboer)
    • e4a541f support adding/removing clients from LBClient (#1243) (Cam Sweeney)
    • b4152d1 Only set RequestCtx.s once (Erik Dubbelboer)
    • d4c739e State active (#1260) (Erik Dubbelboer)
    • f3bce3a Add Go 1.18 support (#1253) (Aoang)
    • c674263 Fix race conditions in tests (Erik Dubbelboer)
    • 286828e add a test for AppendQuotedArg (#1255) (ZhangYunHao)
    • 2044e1e reduce unnessary type assart (#1254) (tyltr)
    • 3101938 Imporve AppendHTMLEscape fast path (#1249) (ZhangYunHao)
    • d1753f7 bytesconv: add appropriate build tags for s390x (#1250) (Nick Rosbrook)
    • 8f5e51f Add connection pool queuing strategies in HostClient. (#1238) (Y.Horie)
    • f7423e3 Fix AppendHTMLEscape (#1248) (ZhangYunHao)
    • 1a5f2f4 Read response when client closes connection #1232 (#1233) (ArminBTVS)

    v1.34.0

    • 59f94a3 Update github.com/klauspost/compress (#1237) (Mikhail Faraponov)
    • 62c15a5 Don't reset RequestCtx.s (#1234) (Erik Dubbelboer)
    • 7670c6e Fix windows tests (#1235) (Erik Dubbelboer)
    • f54ffa1 feature: Keep the memory usage of the service at a stable level (#1216) (Rennbon)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/charmbracelet/bubbles from 0.7.9 to 0.13.0

    build(deps): bump github.com/charmbracelet/bubbles from 0.7.9 to 0.13.0

    Bumps github.com/charmbracelet/bubbles from 0.7.9 to 0.13.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbles's releases.

    v0.13.0

    Textarea Bubble

    This feature release includes a brand new textarea bubble that you can use to input as many lines of text as your heart desires (or until your computer memory runs out, whichever comes first).

    See the example code for a simple example of how to use the textarea in your Bubble Tea applications.

    Customization

    There are a few ways to customize the text area.

    • SetHeight(height int): tells the component how many lines of text it should display at once.
    • SetWidth(width int): tells the component how wide the it should be.
    • ShowLineNumbers: whether or not to show line numbers on the left-hand side of a line of text.
    • Prompt: the prompt to display on the left-hand side.
    • EndOfBufferCharacter: the character to display as the line number after the last line to fill the rest of the height. Defaults to ~.
    • CharLimit: Prevents users from typing more than a set number of characters.
    • KeyMap: The set of keybindings to navigate and interact with the textarea.

    Styling

    The textarea can be customized heavily with Lip Gloss.

    • FocusedStyles: the styles to be applied while the textarea is focused.
    • BlurredStyles: the styles to be applied while the textarea is focused.

    Each of the above properties has the below sub-properties that can be modified.

    Base             lipgloss.Style
    CursorLine       lipgloss.Style
    CursorLineNumber lipgloss.Style
    EndOfBuffer      lipgloss.Style
    LineNumber       lipgloss.Style
    Placeholder      lipgloss.Style
    Prompt           lipgloss.Style
    Text             lipgloss.Style
    

    See the split editors example for how to style the textarea component.

    Read more about it in our examples and docs:

    ... (truncated)

    Commits
    • 3a34fc4 fix(textarea): Add deleteWordRight
    • 2a2fb10 fix(textarea): account for base styling frame when calculating width
    • 588393f fix(textinput): set cursor on initial value
    • 7cc5786 feat(spinners): Construct new spinners with WithSpinner + WithStyle optio...
    • 3899e1b fix(list): Disable Quit Key (#104)
    • 4c17624 fix(timer): stop should return cmd (#138)
    • 2fd583c feat(textarea): Add multi-line text input
    • 42f85b4 docs: fix paginator example link (#177)
    • 4d0a0ea docs(spinner): correct comment about internal ID (#171)
    • 658a4fe feat: new Hamburger + Meter spinners (#172)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.8.0

    build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.8.0

    Bumps github.com/stretchr/testify from 1.7.0 to 1.8.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/charmbracelet/bubbles from 0.7.9 to 0.12.0

    build(deps): bump github.com/charmbracelet/bubbles from 0.7.9 to 0.12.0

    Bumps github.com/charmbracelet/bubbles from 0.7.9 to 0.12.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbles's releases.

    v0.12.0

    Validate Your Darlings

    This release of Bubbles allows you to handle input validation by defining validation functions that ensure the user is typing text that you expect.

    The Validate API introduces a function that is called every time the input changes to ensure that it is still valid input.

    // ValidateFunc is a function that returns an error if the input is invalid.
    type ValidateFunc func(string) error
    

    // Validate is a function that checks whether or not the text within the // input is valid. If it is not valid, the Err field will be set to the // error returned by the function. If the function is not defined, all // input is considered valid. Validate ValidateFunc

    View the Example Code to see Validate and ValidateFuncs work in code.

    With these awesome changes introduced by @​IllusionMan1212, we can now build forms that ensure all input is valid like a credit card input form!

    See the full example to handle input validation in your Bubble Tea apps.

    Custom List Status Bar Item Names

    Thanks to @​wesleimp, lists now have a new function to allow you to set a custom status bar item name. Simply call SetStatusBarItemName on your list with the singular and plural name of your list item and Bubbles will handle the rest (defaults to "item", "items").

    list.SetStatusBarItemName("grocery", "groceries")
    

    This will change the string displayed underneath the Title of the list, in this case the item name is being used for displaying 2 groceries.

    New Spinners 💫

    This release contains two brand new spinners introduced by @​wesleimp, check them out:


    What's Changed

    ... (truncated)

    Commits
    • 42f85b4 docs: fix paginator example link (#177)
    • 4d0a0ea docs(spinner): correct comment about internal ID (#171)
    • 658a4fe feat: new Hamburger + Meter spinners (#172)
    • 93e4642 docs(list): fix linting errors
    • 57d79da feat(list): ability to SetStatusBarItemName (#169)
    • e57fd29 feat: added Validate function for textinput
    • 54869f7 docs(spinner): remove obsolete comment (#168)
    • 7959eb4 fix(progress): set a custom termenv color profile (#152)
    • fd03b61 chore: bump bubbletea, harmonica, lipgloss and termenv deps
    • a1e1b46 fix(textinput): support KeySpace in both present and future Bubble Tea versions
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/charmbracelet/bubbletea from 0.13.2 to 0.22.0

    build(deps): bump github.com/charmbracelet/bubbletea from 0.13.2 to 0.22.0

    Bumps github.com/charmbracelet/bubbletea from 0.13.2 to 0.22.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbletea's releases.

    v0.22.0

    Unmanaged Output

    Now you can print unmanaged output above your inline applications. This means you can print stuff above your app that won't be cleared on the next render. It’s super useful for cases where you want to build an apt-like package manager.

    Let’s Print

    This release introduces two new Cmds that print output above your inline Bubble Tea program:

    tea.Println("Hello, Bubble Tea")
    tea.Printf("%s, %s", "Hello", "Bubble Tea")
    

    Use it anytime you want to add log-type info to the terminal’s scrollback buffer, such as building your own package manager 📦. And keep in mind that these methods are no-op’s in altscreen mode.

    For details see the full example and the docs.

    🤗 Thanks

    @​fiws has been bugging us to implement this forever and then @​Adjective-Object swooped in and did it with style and grace! It’s been a great collaboration all around.


    Changelog

    New

    Fixed!

    New Contributors

    Full Changelog: https://github.com/charmbracelet/bubbletea/compare/v0.21.0...v0.22.0


    Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Slack.

    ... (truncated)

    Commits
    • ca32c4c feat: update cancelreader (#353)
    • ebabec7 feat: print unmanaged output above the application (#249)
    • a2d0ac9 docs: add another progress bar example (#270)
    • d56d8ae Example: Credit Card Input Form (#338)
    • 21de41a docs: fix deprecation notes
    • f27dfb5 fix: add tutorials dir to dependabot config
    • af11a3b docs: rename gh-prs to gh-dash
    • 285d59b docs: add gh-b to readme
    • e6dabb3 fix: handle batched key msgs
    • 958dc20 fix: race condition on repaint with alt screen
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.38.0

    build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.38.0

    Bumps github.com/valyala/fasthttp from 1.28.0 to 1.38.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.38.0

    • 16d30c4 Support AIX SO_REUSEADDR and SO_REUSEPORT (#1328) (zhangyongding)
    • bc24f9d Consolidate TCPKeepalive in server.Serve (#1320) (#1324) (Y.Horie)
    • 8a32089 Add ConnPoolStrategy field to client (#1317) (Thearas)
    • 35aca7b BodyDecoded() for request and responses (#1308) (Sergey Ponomarev)
    • 66cd502 header.go Referer() optimize (#1313) (Sergey Ponomarev)
    • c9f43ea Response.ContentEncoding(): store as field and avoid using Header.SetCanonical() (#1311) (Sergey Ponomarev)
    • de18824 Optimize server connection close logic (#1310) (Sergey Ponomarev)

    v1.37.0

    • 66bc61e Add an option to allow empty root in the fsHandler (#1299) (RW)
    • 9961079 Fix userdata re-use after Remove (Erik Dubbelboer)

    v1.36.0

    • 7cc6f4c Fix DoTimeout Streaming body bug (Erik Dubbelboer)
    • 9a0b4d0 optimize (#1275) (tyltr)
    • e3d2512 optimize (#1272) (tyltr)
    • b40b5a4 Update tlsClientHandshake (#1263) (Mikhail Faraponov)
    • c7576cc Added Windows support and removed some panics (#1264) (Mauro Leggieri)
    • f0e1be5 add nil check of req.body and resp.body on ReleaseBody (#1266) (zzzzwc)

    v1.35.0

    • 7a5afdd Use %v for errors and %q for strings (#1262) (Erik Dubbelboer)
    • e4a541f support adding/removing clients from LBClient (#1243) (Cam Sweeney)
    • b4152d1 Only set RequestCtx.s once (Erik Dubbelboer)
    • d4c739e State active (#1260) (Erik Dubbelboer)
    • f3bce3a Add Go 1.18 support (#1253) (Aoang)
    • c674263 Fix race conditions in tests (Erik Dubbelboer)
    • 286828e add a test for AppendQuotedArg (#1255) (ZhangYunHao)
    • 2044e1e reduce unnessary type assart (#1254) (tyltr)
    • 3101938 Imporve AppendHTMLEscape fast path (#1249) (ZhangYunHao)
    • d1753f7 bytesconv: add appropriate build tags for s390x (#1250) (Nick Rosbrook)
    • 8f5e51f Add connection pool queuing strategies in HostClient. (#1238) (Y.Horie)
    • f7423e3 Fix AppendHTMLEscape (#1248) (ZhangYunHao)
    • 1a5f2f4 Read response when client closes connection #1232 (#1233) (ArminBTVS)

    v1.34.0

    • 59f94a3 Update github.com/klauspost/compress (#1237) (Mikhail Faraponov)
    • 62c15a5 Don't reset RequestCtx.s (#1234) (Erik Dubbelboer)
    • 7670c6e Fix windows tests (#1235) (Erik Dubbelboer)
    • f54ffa1 feature: Keep the memory usage of the service at a stable level (#1216) (Rennbon)
    • 15262ec Warn about unsafe ServeFile usage (#1228) (Erik Dubbelboer)
    • 1116d03 Fix panic while reading invalid trailers (Erik Dubbelboer)
    • 856ca8e Update dependencies (#1230) (Mikhail Faraponov)
    • 6b5bc7b Add windows support to normalizePath (Erik Dubbelboer)
    • f0b0cfe Don't log ErrBadTrailer by default (Erik Dubbelboer)
    • 6937fee fix: (useless check), skip Response body if http method HEAD (#1224) (Pavel Burak)
    • b85d2a2 Fix http proxy behavior (#1221) (Aoang)
    • ad8a07a RequestHeader support set no default ContentType (#1218) (Jack.Ju)
    • c94581c support configure HostClient (#1214) (lin longhjui)

    ... (truncated)

    Commits
    • 16d30c4 Support AIX SO_REUSEADDR and SO_REUSEPORT (#1328)
    • bc24f9d Consolidate TCPKeepalive in server.Serve (#1320) (#1324)
    • 8a32089 Add ConnPoolStrategy field to client (#1317)
    • 35aca7b BodyDecoded() for request and responses (#1308)
    • 66cd502 header.go Referer() optimize (#1313)
    • c9f43ea Response.ContentEncoding(): store as field and avoid using Header.SetCanonica...
    • de18824 Optimize server connection close logic (#1310)
    • 66bc61e Add an option to allow empty root in the fsHandler (#1299)
    • 9961079 Fix userdata re-use after Remove
    • 7cc6f4c Fix DoTimeout Streaming body bug
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.43.0

    build(deps): bump github.com/valyala/fasthttp from 1.28.0 to 1.43.0

    Bumps github.com/valyala/fasthttp from 1.28.0 to 1.43.0.

    Release notes

    Sourced from github.com/valyala/fasthttp's releases.

    v1.43.0

    • dbf457e Revert "feat: support mulit/range (#1398)" (#1446) (Erik Dubbelboer)
    • c50de95 client.go fix addMissingPort() (#1444) (Sergey Ponomarev)

    v1.42.0

    • 4995135 feat: add ShutdownWithContext (#1383) (kinggo)
    • 7b3bf58 style: modify typo and remove repeated type conversions (#1437) (kinggo)
    • 8f43443 Wait for the response of pipelineWork in background and return it to pool (#1436) (Andy Pan)
    • c367454 Fix some potential pool leaks (#1433) (Andy Pan)
    • b32a3dd Use time.Until(deadline) instead of -time.Since(deadline) (#1434) (Andy Pan)
    • 8a60232 Assert with *net.TCPConn instead of *net.TCPListener in acceptConn() for TCP sockets (#1432) (Andy Pan)
    • c57a2ce Make sure nothing is nil in tmp slice (#1423) (hs son)
    • f095481 Request.SetTimeout (#1415) (brian-armstrong-discord)
    • c88dd5d fix form empty field error when used with pipe (#1417) (nick9822)
    • a468a7d feat: support mulit/range (#1398) (byene0923)
    • 3963a79 feat: add PeekKeys and PeekTrailerKeys (#1405) (kinggo)
    • eca86de fix: (#1410) (byene0923)
    • e214137 fix: ignore body should not set content-length of streaming (#1406) (byene0923)

    v1.41.0

    • 128e9b3 optimize: adjust the behavior of PeekAll based on VisitAll (#1403) (kinggo)
    • 2c8ce3b feat: add header.PeekAll (#1394) (kinggo)
    • d404f2d make RequestCtx's userdata accept keys that are of type: interface{} (#1387) (pj)
    • bcf7e8e test: merge test in adaptor_test.go (#1381) (kinggo)
    • 31fdc79 resolve CVE-2022-27664 (#1377) (Craig O'Donnell)
    • 40eec0b byte to string unsafe conversion in fasthttpadaptor ConvertRequest method (#1375) (Emre Savcı)
    • a696949 Deprecate Go 1.15 (#1379) (Aoang)

    v1.40.0

    • 2f1e949 Improve isTLSAlready check (Erik Dubbelboer)
    • 404c8a8 Chore (#1365) (tyltr)
    • 79ccfff Don't use tls ClientSessionCache (Erik Dubbelboer)
    • 28bec71 Fix "use of closed network connection" error check (Erik Dubbelboer)
    • 3b147b7 Fix(server): reset maxRequestBodySize to the server's config (#1360) (Geralt X Li)
    • af94725 Reduce slice growth in adaptor (#1356) (Qing Moy)

    v1.39.0

    • ea60524 Add Go 1.19 Support (#1355) (Aoang)
    • a5f448f Improve Client timeout (#1346) (Erik Dubbelboer)
    • 42f83c6 Prevent overflow and panic on large HTTP responses (#1351) (mathew)
    • f3513cc Introduce FS.CompressRoot (#1331) (mojatter)
    • c94be05 use timeout insteadof read/writetimeout when timeout lower than read/… (#1336) (fare83)
    • b23c5e9 Close new connections after 5s in closeIdleConns (Erik Dubbelboer)
    • 5b0cbf2 Fix apparent documentation typo (#1330) (kayos)

    v1.38.0

    • 16d30c4 Support AIX SO_REUSEADDR and SO_REUSEPORT (#1328) (zhangyongding)
    • bc24f9d Consolidate TCPKeepalive in server.Serve (#1320) (#1324) (Y.Horie)
    • 8a32089 Add ConnPoolStrategy field to client (#1317) (Thearas)
    • 35aca7b BodyDecoded() for request and responses (#1308) (Sergey Ponomarev)

    ... (truncated)

    Commits
    • dbf457e Revert "feat: support mulit/range (#1398)" (#1446)
    • c50de95 client.go fix addMissingPort() (#1444)
    • 4995135 feat: add ShutdownWithContext (#1383)
    • 7b3bf58 style: modify typo and remove repeated type conversions (#1437)
    • 8f43443 Wait for the response of pipelineWork in background and return it to pool (#1...
    • c367454 Fix some potential pool leaks (#1433)
    • b32a3dd Use time.Until(deadline) instead of -time.Since(deadline) (#1434)
    • 8a60232 Assert with *net.TCPConn instead of *net.TCPListener in acceptConn() for TCP ...
    • c57a2ce Make sure nothing is nil in tmp slice (#1423)
    • f095481 Request.SetTimeout (#1415)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump github.com/charmbracelet/bubbletea from 0.13.2 to 0.23.1

    build(deps): bump github.com/charmbracelet/bubbletea from 0.13.2 to 0.23.1

    Bumps github.com/charmbracelet/bubbletea from 0.13.2 to 0.23.1.

    Release notes

    Sourced from github.com/charmbracelet/bubbletea's releases.

    v0.23.1

    This bugfix release addresses an issue that was introduced by v0.23.0 and prevented programs from re-using stdin after a tea.Program had finished execution.


    Changelog

    Fixed!


    Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.

    v0.23.0

    If you are closely following Bubble Tea's development, you may have already noticed that we have been really busy fixing a lot of issues and merged more than just a couple of feature requests in recent weeks. This v0.23.0 release is in fact our biggest update since the initial release of the package: in the last 3 months over 100 commits have reached us by more than 30 individual contributors! Thank you everyone! 💕

    Here's a quick overview of what has changed:

    Custom Outputs

    Don't want to render your beautiful TUI to stdout? A buffer or an alternative file descriptor like stderr seems more appropriate? We got you covered now:

    Render to stderr

    p := tea.NewProgram(model, tea.WithOutput(os.Stderr))
    

    Render to a Buffer

    var buf bytes.Buffer
    p := tea.NewProgram(model, tea.WithOutput(&buf))
    

    Run Like the Wind

    We've introduced the aptly named method Program.Run which replaces and deprecates the existing Program.Start and Program.StartReturningModel methods. This unifies and clarifies the blocking behavior of the Bubble Tea program execution.

    The old methods will continue to work for now, but please update your programs accordingly:

    p := tea.NewProgram(model, tea.WithOutput(os.Stderr))
    model, err := p.Run() // instead of p.Start or p.StartReturningModel
    ...
    </tr></table> 
    

    ... (truncated)

    Commits
    • 94d6f50 docs: update readme
    • 9c20a80 fix: don't close stdin
    • e079831 Remove references to io/ioutil package
    • 7ba62d4 chore(deps): bump github.com/charmbracelet/glamour in /examples
    • 2d10416 [codespell]: Fix typos.
    • 741f2d3 fix: pass actual stdout's fd to command
    • 4f83c62 chore: apply ProgramOptions before checking context
    • 280bc6f docs: clean up readme
    • bc2befe docs: picture tag is causing display issues on Firefox
    • 3938164 docs: new readme footer
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.8.1

    build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.8.1

    Bumps github.com/stretchr/testify from 1.7.0 to 1.8.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump github.com/charmbracelet/bubbles from 0.7.9 to 0.14.0

    build(deps): bump github.com/charmbracelet/bubbles from 0.7.9 to 0.14.0

    Bumps github.com/charmbracelet/bubbles from 0.7.9 to 0.14.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbles's releases.

    v0.14.0

    Table Bubble

    This feature release of Bubbles includes a brand new table bubble that you can use to show and select tabular data! Huge thanks to @​wesleimp for contributing this change ❤️.

    See the example code for an example of how to use the table in your Bubble Tea applications.

    Getting Started

    Create a new table:

    t := table.New(
    	table.WithColumns(columns),
    	table.WithRows(rows),
    	table.WithFocused(true),
    	table.WithHeight(7),
    )
    

    Alternatively,

    t := table.New(table.WithColumns(columns))
    t.SetRows(rows)
    t.Focus()
    t.SetHeight(7)
    

    Style the table how you want:

    s := table.DefaultStyles()
    s.Header = s.Header.
    	BorderStyle(lipgloss.NormalBorder()).
    	BorderForeground(lipgloss.Color("240")).
    	BorderBottom(true).
    	Bold(false)
    s.Selected = s.Selected.
    	Foreground(lipgloss.Color("229")).
    	Background(lipgloss.Color("57")).
    	Bold(false)
    t.SetStyles(s)
    

    And then Update and Render (View) the table:

    </tr></table> 
    

    ... (truncated)

    Commits
    • 13f52d6 fix(table): append headers/columns to zero sized string slice
    • 278edd1 fix(viewport): properly truncate to size (#228)
    • 09e1f00 textarea: support dynamic prompts
    • c099d31 textarea: add some comments
    • db2a8b4 textarea: new bindings for "go to begin" / "go to end"
    • afd6f58 feat(table): add function to set cursor position (#219)
    • d44e242 fix(viewport): honor width and height settings
    • 776062e fix(table): correct keybinding for page down (#220)
    • 1c26128 textarea: add uppercase/lowercase/capitalize word right (#210)
    • 649f78e fix(textarea): pre-allocation of value (#213)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump github.com/dgrr/http2 from 0.3.4 to 0.3.5

    build(deps): bump github.com/dgrr/http2 from 0.3.4 to 0.3.5

    Bumps github.com/dgrr/http2 from 0.3.4 to 0.3.5.

    Commits
    • c31735f Update README.md
    • 009439d Fix #55: Stop the pingTimer before closing the writer channel
    • 13060ae Merge pull request #57 from dgrr/dependabot/go_modules/demo/github.com/valyal...
    • 85a6082 Merge pull request #56 from dgrr/dependabot/go_modules/github.com/valyala/fas...
    • 3b15d88 Bump github.com/valyala/fasthttp from 1.28.0 to 1.34.0 in /demo
    • 48fac2d Bump github.com/valyala/fasthttp from 1.28.0 to 1.34.0
    • 372cb14 Doc
    • b021d00 MaxIdle from fasthttp
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • 🐛 Crashes on start because musl

    🐛 Crashes on start because musl

    httpit version v0.1.0

    Issue description

    ~ strace ./httpit
    execve("./httpit", ["./httpit"], [/* 26 vars */]) = -1 ENOENT (No such file or directory)
    write(2, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
    ) = 40
    exit_group(1)                           = ?
    +++ exited with 1 +++
    
    ~ file ./httpit
    ./httpit: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, stripped
    

    Please make release binary usable with static compilation or build not on Alpine, tnx

    help wanted question 
    opened by subvillion 1
Releases(v0.5.0)
Owner
null
Go http server benchmark

go-http-server-benchmark The more connections, nbio cost the less memory, and performance the better than other frameworks. We can serve for 1000k or

lesismal 2 Sep 1, 2022
Go benchmark harness.

autobench autobench is a framework to compare the performance of Go 1.2 and Go 1.3. usage autobench downloads and builds the latest Go 1.1 and Go tip

Dave Cheney 95 Oct 19, 2022
:zap: Go web framework benchmark

go-web-framework-benchmark This benchmark suite aims to compare the performance of Go web frameworks. It is inspired by Go HTTP Router Benchmark but t

smallnest 1.8k Dec 28, 2022
Key/Value database benchmark

USAGE: kvbench OPTIONS OVERVIEW kvbench is a simple benchmarking tool to evaluate the read performance of a key/value store while writes are being app

James A. Robinson 25 Sep 27, 2022
Cache benchmark for Golang

Cache comparison benchmark for Go This benchmark compares cache algorithms using scrambled zipfian distribution (a few occur very often while many oth

Vladimir Mihailenco 46 Dec 26, 2022
Golang json encoders\decoders benchmark

Json encoder and decoder benchmark Test Encode for: Build-in encoder https://github.com/mailru/easyjson https://github.com/json-iterator/go Test Decod

Vladislav S 0 Dec 3, 2021
Go Script Lang Benchmark

Go Script Lang Benchmark git clone github.com/akkuman/go_script_lang_benchmark c

null 1 Nov 9, 2022
Performance-focused HTTP benchmarking tool written in Go

?? gocannon - HTTP benchmarking tool Gocannon is a lightweight HTTP benchmarking tool, intended to measure changes in backend application performance

null 61 Dec 22, 2022
Application for HTTP benchmarking via different rules and configs

Go Benchmark App The efficiency and speed of application - our goal and the basic idea. Application for HTTP-benchmarking via different rules and conf

Evgeny Ukhanov 26 Dec 24, 2022
Bxd redis benchmark - Redis benchmark tool for golang

使用 redis benchmark 工具, 测试 10 20 50 100 200 1k 5k 字节 value 大小,redis get set 性能。 r

bingxindan 0 Jan 22, 2022
Redis-benchmark - Simple get, mget and pipelined get benchmark.

redis-benchmark Simple get, mget and pipelined get benchmark. Usage git clone https://github.com/Ali-A-A/redis-benchmark.git cd ./redis-benchmark dock

Ali Abbasi Alaei 0 Dec 31, 2021
Go-driver-benchmark - Driver benchmark with golang

We use ClickkHouse for time-series databases, and the driver's performance is ve

null 4 Sep 5, 2022
Benchmark - Benchmark of logr implementations

Benchmark of logr implementations Implementations a function (can bridge to non-

null 4 Nov 6, 2022
Go HTTP request router and web framework benchmark

Go HTTP Router Benchmark This benchmark suite aims to compare the performance of HTTP request routers for Go by implementing the routing structure of

Julien Schmidt 1.6k Dec 27, 2022
A benchmark suite aims to compare the performance of HTTP request routers for Go

Go HTTP Router Benchmark This benchmark suite aims to compare the performance of HTTP request routers for Go by implementing the routing structure of

null 3 Oct 25, 2021
Go http server benchmark

go-http-server-benchmark The more connections, nbio cost the less memory, and performance the better than other frameworks. We can serve for 1000k or

lesismal 2 Sep 1, 2022
An HTTP request routing benchmark suite for Go.

Go HTTP Request Routing Benchmark An HTTP request routing benchmark suite for Go. Results goos: linux goarch: amd64 pkg: github.com/aofei/go-http-requ

Aofei Sheng 5 Dec 14, 2021
Go HTTP request router and web framework benchmark

Go HTTP Router Benchmark This benchmark suite aims to compare the performance of HTTP request routers for Go by implementing the routing structure of

Peter Kieltyka 28 Dec 27, 2022
A Go port of the Rapid Automatic Keyword Extraction algorithm (RAKE)

A Go implementation of the Rapid Automatic Keyword Extraction (RAKE) algorithm as described in: Rose, S., Engel, D., Cramer, N., & Cowley, W. (2010).

Abdullah Joseph 97 Nov 23, 2022
Rapid Web Development w/ Go

Buffalo A Go web development eco-system, designed to make your project easier. Buffalo helps you to generate a web project that already has everything

Buffalo - The Go Web Eco-System 7.4k Jan 1, 2023