Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: benoitc/hackney
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.8.3
Choose a base ref
...
head repository: benoitc/hackney
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 12,689 additions and 6,871 deletions.
  1. +60 −0 .github/workflows/erlang.yml
  2. +7 −0 .gitignore
  3. +41 −0 .gitlab-ci.yml
  4. +1 −3 LICENSE
  5. +2 −0 MAINTAINERS
  6. +0 −35 Makefile
  7. +740 −7 NEWS.md
  8. +10 −2 NOTICE
  9. +253 −93 README.md
  10. +7 −0 THANKS
  11. +9 −8 TODO.md
  12. +0 −411 doc/README.md
  13. +0 −8 doc/edoc-info
  14. BIN doc/erlang.png
  15. +0 −555 doc/hackney.md
  16. +0 −54 doc/hackney_app.md
  17. +0 −94 doc/hackney_connect.md
  18. +0 −133 doc/hackney_deps.md
  19. +0 −36 doc/hackney_form.md
  20. +0 −82 doc/hackney_headers.md
  21. +0 −33 doc/hackney_http_proxy.md
  22. +0 −159 doc/hackney_manager.md
  23. +0 −50 doc/hackney_multipart.md
  24. +0 −158 doc/hackney_pool.md
  25. +0 −7 doc/hackney_pool_handler.md
  26. +0 −71 doc/hackney_request.md
  27. +0 −141 doc/hackney_response.md
  28. +0 −173 doc/hackney_socks5.md
  29. +0 −152 doc/hackney_ssl_transport.md
  30. +0 −74 doc/hackney_stream.md
  31. +0 −33 doc/hackney_sup.md
  32. +0 −152 doc/hackney_tcp_transport.md
  33. +0 −14 doc/hackney_transform.md
  34. +0 −178 doc/hackney_url.md
  35. +0 −150 doc/hackney_util.md
  36. +0 −419 doc/overview.edoc
  37. +0 −55 doc/stylesheet.css
  38. +22 −0 examples/simple_test.escript
  39. +19 −5 examples/test.ebin
  40. +3 −3 examples/test1.erl
  41. +2 −2 examples/test2.erl
  42. +7 −7 examples/test_async.erl
  43. +8 −7 examples/test_async_once.erl
  44. +5 −5 examples/test_async_once2.erl
  45. +0 −50 examples/test_continue.ebin
  46. +38 −0 examples/test_deadlock.erl
  47. +21 −0 examples/test_idna.escript
  48. +48 −0 examples/test_multiple.erl
  49. +60 −0 examples/test_multiple_async.erl
  50. +52 −0 examples/test_multiple_proxy.erl
  51. +38 −0 examples/test_streamto.erl
  52. +60 −48 include/hackney.hrl
  53. +33 −0 include/hackney_lib.hrl
  54. +0 −65 package.exs
  55. +0 −26 package.head.exs
  56. BIN rebar
  57. +63 −6 rebar.config
  58. +26 −0 rebar.lock
  59. +0 −25 rebar_dev.config
  60. +40 −20 src/hackney.app.src
  61. +941 −406 src/hackney.erl
  62. +9 −29 src/hackney_app.erl
  63. +449 −0 src/hackney_bstr.erl
  64. +240 −192 src/hackney_connect.erl
  65. +153 −0 src/hackney_connection.erl
  66. +149 −0 src/hackney_connections.erl
  67. +151 −0 src/hackney_cookie.erl
  68. +454 −0 src/hackney_date.erl
  69. +0 −81 src/hackney_deps.erl
  70. +153 −0 src/hackney_happy.erl
  71. +619 −33 src/hackney_headers.erl
  72. +257 −0 src/hackney_headers_new.erl
  73. +586 −0 src/hackney_http.erl
  74. +206 −0 src/hackney_http_connect.erl
  75. +0 −41 src/hackney_http_proxy.erl
  76. +21 −0 src/hackney_internal.hrl
  77. +87 −0 src/hackney_local_tcp.erl
  78. +544 −323 src/hackney_manager.erl
  79. +27 −0 src/hackney_metrics.erl
  80. +519 −102 src/hackney_multipart.erl
  81. +504 −215 src/hackney_pool.erl
  82. +29 −11 src/hackney_pool_handler.erl
  83. +571 −373 src/hackney_request.erl
  84. +319 −389 src/hackney_response.erl
  85. +179 −139 src/hackney_socks5.erl
  86. +193 −0 src/hackney_ssl.erl
  87. +20 −0 src/hackney_ssl_certificate.erl
  88. +0 −77 src/hackney_ssl_transport.erl
  89. +399 −215 src/hackney_stream.erl
  90. +26 −11 src/hackney_sup.erl
  91. +34 −25 src/{hackney_tcp_transport.erl → hackney_tcp.erl}
  92. +257 −0 src/hackney_trace.erl
  93. +414 −212 src/hackney_url.erl
  94. +126 −188 src/hackney_util.erl
  95. +244 −0 src/libs/hackney_cidr.erl
  96. +27 −0 test/empty_clen_resource.erl
  97. +138 −0 test/hackney_bstr_tests.erl
  98. +377 −0 test/hackney_cidr_tests.erl
  99. +101 −0 test/hackney_cookie_tests.erl
  100. +93 −0 test/hackney_date_tests.erl
  101. +100 −0 test/hackney_headers_new_test.erl
  102. +56 −0 test/hackney_headers_tests.erl
  103. +47 −0 test/hackney_http_nl_tests.erl
  104. +68 −0 test/hackney_http_tests.erl
  105. +245 −0 test/hackney_integration_tests.erl
  106. +94 −0 test/hackney_integration_tests_async_long_headers.erl
  107. +44 −0 test/hackney_multipart_tests.erl
  108. +57 −0 test/hackney_noclen_tests.erl
  109. +70 −0 test/hackney_pool_tests.erl
  110. +53 −0 test/hackney_ssl_tests.erl
  111. +78 −0 test/hackney_stream_tests.erl
  112. +434 −0 test/hackney_url_tests.erl
  113. +19 −0 test/pool_resource.erl
  114. +33 −0 test/upload_resource.erl
60 changes: 60 additions & 0 deletions .github/workflows/erlang.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
name: build
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
ci:
name: Run checks and tests over ${{matrix.otp_vsn}} and ${{matrix.os}}
runs-on: ${{matrix.os}}
strategy:
matrix:
otp: ["25.3", "26.2", "27.2"]
rebar3: ['3.22.1']
os: [ubuntu-22.04]
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
rebar3-version: ${{matrix.rebar3}}
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: python3 python3-httpbin python3-pip
version: 1.1
- run: |
pip3 install gunicorn
gunicorn -b 127.0.0.1:8000 -b unix:httpbin.sock httpbin:app&
- run: rebar3 xref
- run: rebar3 eunit
- run: rebar3 dialyzer
legacy:
name: Run checks and tests over ${{matrix.otp_vsn}} and ${{matrix.os}}
runs-on: ${{matrix.os}}
strategy:
matrix:
otp: ["22.3", "23.3", "24.3"]
rebar3: ['3.18.0']
os: [ubuntu-20.04]
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
rebar3-version: ${{matrix.rebar3}}
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: python3 python3-httpbin python3-pip
version: 1.1
- run: |
pip3 install gunicorn
gunicorn -b 127.0.0.1:8000 -b unix:httpbin.sock httpbin:app&
- run: rebar3 xref
- run: rebar3 eunit
- run: rebar3 dialyzer


7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
_build
ebin
*.beam
*.sw*
deps
.DS_Store
erl_crash.dump
.eunit
mime.types
.rebar
*.plt
*_plt
rebar3.crashdump
41 changes: 41 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
before_script:
- apt-get -q update
- apt-get -y install python3
- apt-get install -y python3-pip
- pip3 install -q httpbin
- pip3 install -q gunicorn
- gunicorn -b 127.0.0.1:8000 -b unix:httpbin.sock httpbin:app&


OTP-20.3:
image: erlang:20

script:
- ./support/rebar3 eunit
- ./support/rebar3 dialyzer


OTP-21:
image: erlang:21


script:
- ./support/rebar3 eunit
- ./support/rebar3 dialyzer


OTP-22:
image: erlang:22

script:
- ./support/rebar3 eunit
- ./support/rebar3 dialyzer


OTP-23:
image: erlang:23

script:
- ./support/rebar3 eunit
- ./support/rebar3 dialyzer

4 changes: 1 addition & 3 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
2012-2013 (c) Benoît Chesneau <benoitc@e-engura.org>
2012-2025 (c) Benoît Chesneau <bchesneau@pm.me>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -11,5 +11,3 @@ distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


2 changes: 2 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Benoit Chesneau <bchesneau@gmail.com>
Eduardo Gurgel <eduardo@gurgel.me>
35 changes: 0 additions & 35 deletions Makefile

This file was deleted.

Loading