pgbus 0.0.1

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.
Files changed (89) hide show
  1. checksums.yaml +7 -0
  2. data/.bun-version +1 -0
  3. data/.claude/commands/architect.md +100 -0
  4. data/.claude/commands/github-review-comments.md +237 -0
  5. data/.claude/commands/lfg.md +271 -0
  6. data/.claude/commands/review-pr.md +69 -0
  7. data/.claude/commands/security.md +122 -0
  8. data/.claude/commands/tdd.md +148 -0
  9. data/.claude/rules/agents.md +49 -0
  10. data/.claude/rules/coding-style.md +91 -0
  11. data/.claude/rules/git-workflow.md +56 -0
  12. data/.claude/rules/performance.md +73 -0
  13. data/.claude/rules/testing.md +67 -0
  14. data/CHANGELOG.md +5 -0
  15. data/CLAUDE.md +80 -0
  16. data/CODE_OF_CONDUCT.md +10 -0
  17. data/LICENSE.txt +21 -0
  18. data/README.md +417 -0
  19. data/Rakefile +14 -0
  20. data/app/controllers/pgbus/api/stats_controller.rb +11 -0
  21. data/app/controllers/pgbus/application_controller.rb +35 -0
  22. data/app/controllers/pgbus/dashboard_controller.rb +27 -0
  23. data/app/controllers/pgbus/dead_letter_controller.rb +50 -0
  24. data/app/controllers/pgbus/events_controller.rb +23 -0
  25. data/app/controllers/pgbus/jobs_controller.rb +48 -0
  26. data/app/controllers/pgbus/processes_controller.rb +10 -0
  27. data/app/controllers/pgbus/queues_controller.rb +21 -0
  28. data/app/helpers/pgbus/application_helper.rb +69 -0
  29. data/app/views/layouts/pgbus/application.html.erb +76 -0
  30. data/app/views/pgbus/dashboard/_processes_table.html.erb +30 -0
  31. data/app/views/pgbus/dashboard/_queues_table.html.erb +39 -0
  32. data/app/views/pgbus/dashboard/_recent_failures.html.erb +33 -0
  33. data/app/views/pgbus/dashboard/_stats_cards.html.erb +28 -0
  34. data/app/views/pgbus/dashboard/show.html.erb +10 -0
  35. data/app/views/pgbus/dead_letter/_messages_table.html.erb +40 -0
  36. data/app/views/pgbus/dead_letter/index.html.erb +15 -0
  37. data/app/views/pgbus/dead_letter/show.html.erb +52 -0
  38. data/app/views/pgbus/events/index.html.erb +57 -0
  39. data/app/views/pgbus/events/show.html.erb +28 -0
  40. data/app/views/pgbus/jobs/_enqueued_table.html.erb +34 -0
  41. data/app/views/pgbus/jobs/_failed_table.html.erb +45 -0
  42. data/app/views/pgbus/jobs/index.html.erb +16 -0
  43. data/app/views/pgbus/jobs/show.html.erb +57 -0
  44. data/app/views/pgbus/processes/_processes_table.html.erb +37 -0
  45. data/app/views/pgbus/processes/index.html.erb +3 -0
  46. data/app/views/pgbus/queues/_queues_list.html.erb +41 -0
  47. data/app/views/pgbus/queues/index.html.erb +3 -0
  48. data/app/views/pgbus/queues/show.html.erb +49 -0
  49. data/bun.lock +18 -0
  50. data/config/routes.rb +45 -0
  51. data/docs/README.md +28 -0
  52. data/docs/switch_from_good_job.md +279 -0
  53. data/docs/switch_from_sidekiq.md +226 -0
  54. data/docs/switch_from_solid_queue.md +247 -0
  55. data/exe/pgbus +7 -0
  56. data/lib/generators/pgbus/install_generator.rb +56 -0
  57. data/lib/generators/pgbus/templates/migration.rb.erb +114 -0
  58. data/lib/generators/pgbus/templates/pgbus.yml.erb +74 -0
  59. data/lib/generators/pgbus/templates/pgbus_binstub.erb +7 -0
  60. data/lib/pgbus/active_job/adapter.rb +109 -0
  61. data/lib/pgbus/active_job/executor.rb +107 -0
  62. data/lib/pgbus/batch.rb +153 -0
  63. data/lib/pgbus/cli.rb +84 -0
  64. data/lib/pgbus/client.rb +162 -0
  65. data/lib/pgbus/concurrency/blocked_execution.rb +74 -0
  66. data/lib/pgbus/concurrency/semaphore.rb +66 -0
  67. data/lib/pgbus/concurrency.rb +65 -0
  68. data/lib/pgbus/config_loader.rb +27 -0
  69. data/lib/pgbus/configuration.rb +99 -0
  70. data/lib/pgbus/engine.rb +31 -0
  71. data/lib/pgbus/event.rb +31 -0
  72. data/lib/pgbus/event_bus/handler.rb +76 -0
  73. data/lib/pgbus/event_bus/publisher.rb +42 -0
  74. data/lib/pgbus/event_bus/registry.rb +54 -0
  75. data/lib/pgbus/event_bus/subscriber.rb +30 -0
  76. data/lib/pgbus/process/consumer.rb +113 -0
  77. data/lib/pgbus/process/dispatcher.rb +154 -0
  78. data/lib/pgbus/process/heartbeat.rb +71 -0
  79. data/lib/pgbus/process/signal_handler.rb +49 -0
  80. data/lib/pgbus/process/supervisor.rb +198 -0
  81. data/lib/pgbus/process/worker.rb +153 -0
  82. data/lib/pgbus/serializer.rb +43 -0
  83. data/lib/pgbus/version.rb +5 -0
  84. data/lib/pgbus/web/authentication.rb +24 -0
  85. data/lib/pgbus/web/data_source.rb +406 -0
  86. data/lib/pgbus.rb +49 -0
  87. data/package.json +9 -0
  88. data/sig/pgbus.rbs +4 -0
  89. metadata +198 -0
metadata ADDED
@@ -0,0 +1,198 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pgbus
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Mikael Henriksson
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: concurrent-ruby
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.2'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.2'
26
+ - !ruby/object:Gem::Dependency
27
+ name: pgmq-ruby
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.5'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.5'
40
+ - !ruby/object:Gem::Dependency
41
+ name: railties
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '7.1'
47
+ - - "<"
48
+ - !ruby/object:Gem::Version
49
+ version: '9.0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '7.1'
57
+ - - "<"
58
+ - !ruby/object:Gem::Version
59
+ version: '9.0'
60
+ - !ruby/object:Gem::Dependency
61
+ name: zeitwerk
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '2.6'
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '2.6'
74
+ description: |
75
+ Pgbus is a PostgreSQL-native job processor and event bus for Ruby on Rails.
76
+ Built on top of PGMQ, it provides ActiveJob integration, AMQP-style topic routing,
77
+ idempotent event handling, worker memory management, dead letter queues,
78
+ and a built-in dashboard with Hotwire support.
79
+ email:
80
+ - mikael@mhenrixon.com
81
+ executables:
82
+ - pgbus
83
+ extensions: []
84
+ extra_rdoc_files: []
85
+ files:
86
+ - ".bun-version"
87
+ - ".claude/commands/architect.md"
88
+ - ".claude/commands/github-review-comments.md"
89
+ - ".claude/commands/lfg.md"
90
+ - ".claude/commands/review-pr.md"
91
+ - ".claude/commands/security.md"
92
+ - ".claude/commands/tdd.md"
93
+ - ".claude/rules/agents.md"
94
+ - ".claude/rules/coding-style.md"
95
+ - ".claude/rules/git-workflow.md"
96
+ - ".claude/rules/performance.md"
97
+ - ".claude/rules/testing.md"
98
+ - CHANGELOG.md
99
+ - CLAUDE.md
100
+ - CODE_OF_CONDUCT.md
101
+ - LICENSE.txt
102
+ - README.md
103
+ - Rakefile
104
+ - app/controllers/pgbus/api/stats_controller.rb
105
+ - app/controllers/pgbus/application_controller.rb
106
+ - app/controllers/pgbus/dashboard_controller.rb
107
+ - app/controllers/pgbus/dead_letter_controller.rb
108
+ - app/controllers/pgbus/events_controller.rb
109
+ - app/controllers/pgbus/jobs_controller.rb
110
+ - app/controllers/pgbus/processes_controller.rb
111
+ - app/controllers/pgbus/queues_controller.rb
112
+ - app/helpers/pgbus/application_helper.rb
113
+ - app/views/layouts/pgbus/application.html.erb
114
+ - app/views/pgbus/dashboard/_processes_table.html.erb
115
+ - app/views/pgbus/dashboard/_queues_table.html.erb
116
+ - app/views/pgbus/dashboard/_recent_failures.html.erb
117
+ - app/views/pgbus/dashboard/_stats_cards.html.erb
118
+ - app/views/pgbus/dashboard/show.html.erb
119
+ - app/views/pgbus/dead_letter/_messages_table.html.erb
120
+ - app/views/pgbus/dead_letter/index.html.erb
121
+ - app/views/pgbus/dead_letter/show.html.erb
122
+ - app/views/pgbus/events/index.html.erb
123
+ - app/views/pgbus/events/show.html.erb
124
+ - app/views/pgbus/jobs/_enqueued_table.html.erb
125
+ - app/views/pgbus/jobs/_failed_table.html.erb
126
+ - app/views/pgbus/jobs/index.html.erb
127
+ - app/views/pgbus/jobs/show.html.erb
128
+ - app/views/pgbus/processes/_processes_table.html.erb
129
+ - app/views/pgbus/processes/index.html.erb
130
+ - app/views/pgbus/queues/_queues_list.html.erb
131
+ - app/views/pgbus/queues/index.html.erb
132
+ - app/views/pgbus/queues/show.html.erb
133
+ - bun.lock
134
+ - config/routes.rb
135
+ - docs/README.md
136
+ - docs/switch_from_good_job.md
137
+ - docs/switch_from_sidekiq.md
138
+ - docs/switch_from_solid_queue.md
139
+ - exe/pgbus
140
+ - lib/generators/pgbus/install_generator.rb
141
+ - lib/generators/pgbus/templates/migration.rb.erb
142
+ - lib/generators/pgbus/templates/pgbus.yml.erb
143
+ - lib/generators/pgbus/templates/pgbus_binstub.erb
144
+ - lib/pgbus.rb
145
+ - lib/pgbus/active_job/adapter.rb
146
+ - lib/pgbus/active_job/executor.rb
147
+ - lib/pgbus/batch.rb
148
+ - lib/pgbus/cli.rb
149
+ - lib/pgbus/client.rb
150
+ - lib/pgbus/concurrency.rb
151
+ - lib/pgbus/concurrency/blocked_execution.rb
152
+ - lib/pgbus/concurrency/semaphore.rb
153
+ - lib/pgbus/config_loader.rb
154
+ - lib/pgbus/configuration.rb
155
+ - lib/pgbus/engine.rb
156
+ - lib/pgbus/event.rb
157
+ - lib/pgbus/event_bus/handler.rb
158
+ - lib/pgbus/event_bus/publisher.rb
159
+ - lib/pgbus/event_bus/registry.rb
160
+ - lib/pgbus/event_bus/subscriber.rb
161
+ - lib/pgbus/process/consumer.rb
162
+ - lib/pgbus/process/dispatcher.rb
163
+ - lib/pgbus/process/heartbeat.rb
164
+ - lib/pgbus/process/signal_handler.rb
165
+ - lib/pgbus/process/supervisor.rb
166
+ - lib/pgbus/process/worker.rb
167
+ - lib/pgbus/serializer.rb
168
+ - lib/pgbus/version.rb
169
+ - lib/pgbus/web/authentication.rb
170
+ - lib/pgbus/web/data_source.rb
171
+ - package.json
172
+ - sig/pgbus.rbs
173
+ homepage: https://github.com/mhenrixon/pgbus
174
+ licenses:
175
+ - MIT
176
+ metadata:
177
+ homepage_uri: https://github.com/mhenrixon/pgbus
178
+ source_code_uri: https://github.com/mhenrixon/pgbus
179
+ changelog_uri: https://github.com/mhenrixon/pgbus/blob/main/CHANGELOG.md
180
+ rubygems_mfa_required: 'true'
181
+ rdoc_options: []
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: 3.3.0
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ requirements: []
195
+ rubygems_version: 4.0.6
196
+ specification_version: 4
197
+ summary: PostgreSQL-native job processing and event bus for Rails, built on PGMQ
198
+ test_files: []