pitchfork 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pitchfork might be problematic. Click here for more details.

Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/.git-blame-ignore-revs +3 -0
  3. data/.gitattributes +5 -0
  4. data/.github/workflows/ci.yml +30 -0
  5. data/.gitignore +23 -0
  6. data/COPYING +674 -0
  7. data/Dockerfile +4 -0
  8. data/Gemfile +9 -0
  9. data/Gemfile.lock +30 -0
  10. data/LICENSE +67 -0
  11. data/README.md +123 -0
  12. data/Rakefile +72 -0
  13. data/docs/Application_Timeouts.md +74 -0
  14. data/docs/CONFIGURATION.md +388 -0
  15. data/docs/DESIGN.md +86 -0
  16. data/docs/FORK_SAFETY.md +80 -0
  17. data/docs/PHILOSOPHY.md +90 -0
  18. data/docs/REFORKING.md +113 -0
  19. data/docs/SIGNALS.md +38 -0
  20. data/docs/TUNING.md +106 -0
  21. data/examples/constant_caches.ru +43 -0
  22. data/examples/echo.ru +25 -0
  23. data/examples/hello.ru +5 -0
  24. data/examples/nginx.conf +156 -0
  25. data/examples/pitchfork.conf.minimal.rb +5 -0
  26. data/examples/pitchfork.conf.rb +77 -0
  27. data/examples/unicorn.socket +11 -0
  28. data/exe/pitchfork +116 -0
  29. data/ext/pitchfork_http/CFLAGS +13 -0
  30. data/ext/pitchfork_http/c_util.h +116 -0
  31. data/ext/pitchfork_http/child_subreaper.h +25 -0
  32. data/ext/pitchfork_http/common_field_optimization.h +130 -0
  33. data/ext/pitchfork_http/epollexclusive.h +124 -0
  34. data/ext/pitchfork_http/ext_help.h +38 -0
  35. data/ext/pitchfork_http/extconf.rb +14 -0
  36. data/ext/pitchfork_http/global_variables.h +97 -0
  37. data/ext/pitchfork_http/httpdate.c +79 -0
  38. data/ext/pitchfork_http/pitchfork_http.c +4318 -0
  39. data/ext/pitchfork_http/pitchfork_http.rl +1024 -0
  40. data/ext/pitchfork_http/pitchfork_http_common.rl +76 -0
  41. data/lib/pitchfork/app/old_rails/static.rb +59 -0
  42. data/lib/pitchfork/children.rb +124 -0
  43. data/lib/pitchfork/configurator.rb +314 -0
  44. data/lib/pitchfork/const.rb +23 -0
  45. data/lib/pitchfork/http_parser.rb +206 -0
  46. data/lib/pitchfork/http_response.rb +63 -0
  47. data/lib/pitchfork/http_server.rb +822 -0
  48. data/lib/pitchfork/launcher.rb +9 -0
  49. data/lib/pitchfork/mem_info.rb +36 -0
  50. data/lib/pitchfork/message.rb +130 -0
  51. data/lib/pitchfork/mold_selector.rb +29 -0
  52. data/lib/pitchfork/preread_input.rb +33 -0
  53. data/lib/pitchfork/refork_condition.rb +21 -0
  54. data/lib/pitchfork/select_waiter.rb +9 -0
  55. data/lib/pitchfork/socket_helper.rb +199 -0
  56. data/lib/pitchfork/stream_input.rb +152 -0
  57. data/lib/pitchfork/tee_input.rb +133 -0
  58. data/lib/pitchfork/tmpio.rb +35 -0
  59. data/lib/pitchfork/version.rb +8 -0
  60. data/lib/pitchfork/worker.rb +244 -0
  61. data/lib/pitchfork.rb +158 -0
  62. data/pitchfork.gemspec +30 -0
  63. metadata +137 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 990697289cbe2c021f74571daada6e866a7ad796df6c855be4852d106ad84b7d
4
+ data.tar.gz: a8dd04579e7f955075ee96c95ff003f82de2897ba9f96839ddb05c7e701f45ce
5
+ SHA512:
6
+ metadata.gz: 746fa1aaff6dd152e5d1b210088f1cdf2e3388d841fd302347919a470afd09e8a0188099a89280e6368d0dff8afe62c884140d332fa45dfdd3bed23b57d386df
7
+ data.tar.gz: 6586706a8d2c5eb31fae62a822f5f7c405356ddab44c8f2add1ff3e994715ac724be0c666cc26d38acec5922ce10c3967c03c2d9a9580447ba3a8198e5d0667f
@@ -0,0 +1,3 @@
1
+ bc4df9a8aff27e489c96103fd6cf0847b9c1a40c
2
+ 6d9211b72bf312ee913bc4e276db9ea250abdb10
3
+ a393b03b0433086be02db51e70d7cf05263e28a5
data/.gitattributes ADDED
@@ -0,0 +1,5 @@
1
+ *.gemspec diff=ruby
2
+ *.rb diff=ruby
3
+ *.ru diff=ruby
4
+ Rakefile diff=ruby
5
+ bin/* diff=ruby
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: Test
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ ruby:
7
+ name: Ruby ${{ matrix.ruby }}
8
+ timeout-minutes: 15
9
+ strategy:
10
+ fail-fast: false
11
+ matrix:
12
+ os: ["ubuntu-latest"]
13
+ redis: ["6.2"]
14
+ ruby: ["3.1", "3.0", "2.7", "2.6"]
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Check out code
18
+ uses: actions/checkout@v3
19
+
20
+ - name: Set up Ruby
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby }}
24
+ bundler-cache: true
25
+
26
+ - name: Install packages
27
+ run: sudo apt-get install -y ragel socat netcat
28
+
29
+ - name: Tests
30
+ run: bundle exec rake
data/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ *.o
2
+ *.bundle
3
+ *.log
4
+ *.so
5
+ *.rbc
6
+ .DS_Store
7
+ /.config
8
+ /InstalledFiles
9
+ /local.mk
10
+ /test/rbx-*
11
+ /test/ruby-*
12
+ ext/pitchfork_http/Makefile
13
+ log/
14
+ pkg/
15
+ /vendor
16
+ /NEWS*
17
+ /.manifest
18
+ /GIT-VERSION-FILE
19
+ /man
20
+ /tmp
21
+ /LATEST
22
+ /*_1
23
+ test/integration/trash/