itsi 0.1.18 → 0.1.20

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 (394) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/Cargo.lock +924 -385
  4. data/README.md +67 -55
  5. data/crates/itsi_server/Cargo.toml +7 -4
  6. data/crates/itsi_server/src/ruby_types/itsi_http_request.rs +2 -2
  7. data/crates/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +150 -19
  8. data/crates/itsi_server/src/ruby_types/itsi_server.rs +1 -0
  9. data/crates/itsi_server/src/server/binds/listener.rs +34 -29
  10. data/crates/itsi_server/src/server/binds/tls/locked_dir_cache.rs +2 -2
  11. data/crates/itsi_server/src/server/binds/tls.rs +1 -1
  12. data/crates/itsi_server/src/server/middleware_stack/middleware.rs +33 -28
  13. data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs +56 -3
  14. data/crates/itsi_server/src/server/middleware_stack/middlewares/csp.rs +179 -0
  15. data/crates/itsi_server/src/server/middleware_stack/middlewares/mod.rs +25 -2
  16. data/crates/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +3 -3
  17. data/crates/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +2 -1
  18. data/crates/itsi_server/src/server/middleware_stack/mod.rs +32 -34
  19. data/crates/itsi_server/src/server/serve_strategy/cluster_mode.rs +10 -4
  20. data/crates/itsi_server/src/server/serve_strategy/single_mode.rs +30 -7
  21. data/crates/itsi_server/src/server/thread_worker.rs +2 -2
  22. data/crates/itsi_server/src/services/static_file_server.rs +30 -28
  23. data/crates/itsi_tracing/src/lib.rs +39 -8
  24. data/docker/Dockerfile +12 -0
  25. data/docs/content/_index.md +18 -10
  26. data/docs/content/acknowledgements/_index.md +43 -0
  27. data/docs/content/configuration/_index.md +98 -0
  28. data/docs/content/contact/_index.md +7 -0
  29. data/docs/content/faqs/_index.md +27 -0
  30. data/docs/content/features/_index.md +285 -0
  31. data/docs/content/getting_started/_index.md +70 -0
  32. data/docs/content/getting_started/local_development.md +40 -0
  33. data/docs/content/getting_started/logging.md +16 -0
  34. data/docs/content/getting_started/running_itsi_in_production.md +24 -0
  35. data/docs/content/itsi-server-100.png +0 -0
  36. data/docs/content/itsi_scheduler/_index.md +105 -0
  37. data/docs/content/itsi_scheduler/itsi-scheduler-100.png +0 -0
  38. data/docs/content/ruby-lsp.png +0 -0
  39. data/docs/content/ruby.svg +948 -0
  40. data/docs/data/icons.yaml +949 -0
  41. data/docs/hugo.yaml +27 -28
  42. data/fairytale.txt +34 -0
  43. data/gems/scheduler/Cargo.lock +46 -46
  44. data/gems/scheduler/README.md +53 -24
  45. data/gems/scheduler/itsi-scheduler-100.png +0 -0
  46. data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
  47. data/gems/server/Cargo.lock +932 -382
  48. data/gems/server/README.md +2 -0
  49. data/gems/server/exe/itsi +5 -5
  50. data/gems/server/lib/itsi/http_request.rb +1 -0
  51. data/gems/server/lib/itsi/server/config/config_helpers.rb +93 -0
  52. data/gems/server/lib/itsi/server/config/dsl.rb +98 -37
  53. data/gems/server/lib/itsi/server/config/known_paths/KitchensinkDirectories.txt +2346 -0
  54. data/gems/server/lib/itsi/server/config/known_paths/Randomfiles.txt +24 -0
  55. data/gems/server/lib/itsi/server/config/known_paths/UnixDotfiles.txt +52 -0
  56. data/gems/server/lib/itsi/server/config/known_paths/backdoors/ASP_CommonBackdoors.txt +29 -0
  57. data/gems/server/lib/itsi/server/config/known_paths/backdoors/bot_control_panels.txt +1668 -0
  58. data/gems/server/lib/itsi/server/config/known_paths/backdoors/shells.txt +1167 -0
  59. data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_HTTP_POST.txt +7 -0
  60. data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_HTTP_POST_Windows.txt +6 -0
  61. data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_Microsoft.txt +79 -0
  62. data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_XPlatform.txt +3948 -0
  63. data/gems/server/lib/itsi/server/config/known_paths/cms/README.md +5 -0
  64. data/gems/server/lib/itsi/server/config/known_paths/cms/drupal_plugins.txt +6320 -0
  65. data/gems/server/lib/itsi/server/config/known_paths/cms/drupal_themes.txt +828 -0
  66. data/gems/server/lib/itsi/server/config/known_paths/cms/joomla_plugins.txt +224 -0
  67. data/gems/server/lib/itsi/server/config/known_paths/cms/joomla_themes.txt +30 -0
  68. data/gems/server/lib/itsi/server/config/known_paths/cms/php-nuke.txt +2142 -0
  69. data/gems/server/lib/itsi/server/config/known_paths/cms/wordpress.txt +1566 -0
  70. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_common_theme_files.txt +46 -0
  71. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins.txt +13366 -0
  72. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins_full.txt +68662 -0
  73. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins_top225.txt +225 -0
  74. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_themes.readme +12 -0
  75. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_themes.txt +7336 -0
  76. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/3CharExtBrute.txt +17576 -0
  77. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/CommonWebExtensions.txt +80 -0
  78. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Backup.txt +14 -0
  79. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Common.txt +865 -0
  80. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Compressed.txt +186 -0
  81. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Mostcommon.txt +30 -0
  82. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Skipfish.txt +93 -0
  83. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/WordlistSkipfish.txt +1918 -0
  84. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/copy_of.txt +8 -0
  85. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-directories-lowercase.txt +56180 -0
  86. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-directories.txt +62290 -0
  87. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-extensions-lowercase.txt +2367 -0
  88. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-extensions.txt +2450 -0
  89. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-files-lowercase.txt +35323 -0
  90. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-files.txt +37037 -0
  91. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-words-lowercase.txt +107982 -0
  92. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-words.txt +119600 -0
  93. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-directories-lowercase.txt +26593 -0
  94. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-directories.txt +30009 -0
  95. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-extensions-lowercase.txt +1233 -0
  96. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-extensions.txt +1289 -0
  97. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-files-lowercase.txt +16243 -0
  98. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-files.txt +17128 -0
  99. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-words-lowercase.txt +56293 -0
  100. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-words.txt +63087 -0
  101. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-directories-lowercase.txt +17776 -0
  102. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-directories.txt +20122 -0
  103. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-extensions-lowercase.txt +914 -0
  104. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-extensions.txt +963 -0
  105. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-files-lowercase.txt +10848 -0
  106. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-files.txt +11424 -0
  107. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-words-lowercase.txt +38267 -0
  108. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-words.txt +43003 -0
  109. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/spanish.txt +445 -0
  110. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/test_demo.txt +36 -0
  111. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/upload_variants.txt +44 -0
  112. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/Logins.txt +71 -0
  113. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/cfm.txt +294 -0
  114. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/html.txt +295 -0
  115. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/jsp.txt +294 -0
  116. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/php.txt +294 -0
  117. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/windows-asp.txt +294 -0
  118. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/windows-aspx.txt +294 -0
  119. data/gems/server/lib/itsi/server/config/known_paths/password-file-locations/Passwords.txt +47 -0
  120. data/gems/server/lib/itsi/server/config/known_paths/php/PHP.txt +30 -0
  121. data/gems/server/lib/itsi/server/config/known_paths/php/PHP_CommonBackdoors.txt +5 -0
  122. data/gems/server/lib/itsi/server/config/known_paths/proxy-conf.txt +31 -0
  123. data/gems/server/lib/itsi/server/config/known_paths/tftp.txt +79 -0
  124. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ADFS.txt +86 -0
  125. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/AdobeXML.txt +16 -0
  126. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Apache.txt +101 -0
  127. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ApacheTomcat.txt +47 -0
  128. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Apache_Axis.txt +16 -0
  129. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ColdFusion.txt +111 -0
  130. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/FatwireCMS.txt +390 -0
  131. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Frontpage.txt +38 -0
  132. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/HP_System_Mgmt_Homepage.txt +239 -0
  133. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/HTTP_POST_Microsoft.txt +2 -0
  134. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Hyperion.txt +578 -0
  135. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/IIS.txt +187 -0
  136. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JBoss.txt +5 -0
  137. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JRun.txt +13 -0
  138. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JavaServlets_Common.txt +3 -0
  139. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Joomla_exploitable.txt +1937 -0
  140. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/LotusNotes.txt +206 -0
  141. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Netware.txt +18 -0
  142. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Oracle9i.txt +60 -0
  143. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/OracleAppServer.txt +192 -0
  144. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/README.md +6 -0
  145. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Ruby_Rails.txt +121 -0
  146. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SAP.txt +463 -0
  147. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Sharepoint.txt +1707 -0
  148. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SiteMinder.txt +19 -0
  149. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SunAppServerGlassfish.txt +51 -0
  150. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SuniPlanet.txt +35 -0
  151. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Vignette.txt +73 -0
  152. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Weblogic.txt +160 -0
  153. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Websphere.txt +366 -0
  154. data/gems/server/lib/itsi/server/config/known_paths/wellknown-rfc5785.txt +30 -0
  155. data/gems/server/lib/itsi/server/config/known_paths.rb +17 -0
  156. data/gems/server/lib/itsi/server/config/middleware/_index.md +54 -0
  157. data/gems/server/lib/itsi/server/config/middleware/log_requests.md +63 -0
  158. data/gems/server/lib/itsi/server/config/middleware/log_requests.rb +33 -0
  159. data/gems/server/lib/itsi/server/config/middleware.rb +9 -0
  160. data/gems/server/lib/itsi/server/config/option.rb +9 -0
  161. data/gems/server/lib/itsi/server/config/options/_index.md +36 -0
  162. data/gems/server/lib/itsi/server/config/options/fiber_scheduler.md +35 -0
  163. data/gems/server/lib/itsi/server/config/options/fiber_scheduler.rb +18 -0
  164. data/gems/server/lib/itsi/server/config/options/threads.md +39 -0
  165. data/gems/server/lib/itsi/server/config/options/threads.rb +17 -0
  166. data/gems/server/lib/itsi/server/config/options/workers.md +43 -0
  167. data/gems/server/lib/itsi/server/config/options/workers.rb +17 -0
  168. data/gems/server/lib/itsi/server/config/typed_struct.rb +203 -0
  169. data/gems/server/lib/itsi/server/config.rb +124 -30
  170. data/gems/server/lib/itsi/server/signal_trap.rb +5 -1
  171. data/gems/server/lib/itsi/server/typed_handlers/source_parser.rb +1 -1
  172. data/gems/server/lib/itsi/server/version.rb +1 -1
  173. data/gems/server/lib/itsi/server.rb +27 -6
  174. data/gems/server/lib/ruby_lsp/itsi/addon.rb +64 -48
  175. data/gems/server/test/helpers/test_helper.rb +64 -5
  176. data/gems/server/test/middleware/test_log_requests.rb +17 -0
  177. data/gems/server/test/options/test_threads.rb +15 -0
  178. data/gems/server/test/options/test_workers.rb +18 -0
  179. data/gems/server/test/test_itsi_server.rb +81 -94
  180. data/itsi-scheduler-100.png +0 -0
  181. data/itsi-server-100.png +0 -0
  182. data/lib/itsi/version.rb +1 -1
  183. data/tasks.txt +36 -28
  184. metadata +147 -215
  185. data/crates/_index.md +0 -0
  186. data/crates/itsi_server/src/ruby_types/README.md +0 -21
  187. data/crates/itsi_server/test.md +0 -14
  188. data/docs/Itsi.rb +0 -17
  189. data/docs/content/about.md +0 -6
  190. data/docs/content/docs/_index.md +0 -18
  191. data/docs/content/docs/first-page.md +0 -9
  192. data/docs/content/docs/folder/_index.md +0 -10
  193. data/docs/content/docs/folder/leaf.md +0 -7
  194. data/foo/Itsi.rb +0 -122
  195. data/gems/_index.md +0 -18
  196. data/gems/scheduler/CHANGELOG.md +0 -5
  197. data/gems/scheduler/CODE_OF_CONDUCT.md +0 -139
  198. data/gems/scheduler/LICENSE.txt +0 -21
  199. data/gems/scheduler/_index.md +0 -7
  200. data/gems/server/CHANGELOG.md +0 -10
  201. data/gems/server/CODE_OF_CONDUCT.md +0 -139
  202. data/gems/server/LICENSE.txt +0 -21
  203. data/gems/server/_index.md +0 -6
  204. data/sandbox/README.md +0 -5
  205. data/sandbox/deploy/main.tf +0 -238
  206. data/sandbox/deploy/outputs.tf +0 -4
  207. data/sandbox/deploy/vars.tf +0 -11
  208. data/sandbox/falcon_benchmark/Gemfile +0 -10
  209. data/sandbox/falcon_benchmark/Gemfile.lock +0 -140
  210. data/sandbox/falcon_benchmark/config.ru +0 -54
  211. data/sandbox/itsi_file/Gemfile +0 -13
  212. data/sandbox/itsi_file/Gemfile.lock +0 -111
  213. data/sandbox/itsi_file/Itsi.rb +0 -473
  214. data/sandbox/itsi_file/call.json +0 -1
  215. data/sandbox/itsi_file/echo_client/Gemfile +0 -10
  216. data/sandbox/itsi_file/echo_client/Gemfile.lock +0 -27
  217. data/sandbox/itsi_file/echo_client/README.md +0 -95
  218. data/sandbox/itsi_file/echo_client/echo_client.rb +0 -164
  219. data/sandbox/itsi_file/echo_client/gen_proto.sh +0 -17
  220. data/sandbox/itsi_file/echo_client/lib/echo_pb.rb +0 -16
  221. data/sandbox/itsi_file/echo_client/lib/echo_services_pb.rb +0 -29
  222. data/sandbox/itsi_file/echo_client/run_client.rb +0 -64
  223. data/sandbox/itsi_file/echo_client/test_compressions.sh +0 -20
  224. data/sandbox/itsi_file/echo_service_nonitsi/Gemfile +0 -10
  225. data/sandbox/itsi_file/echo_service_nonitsi/Gemfile.lock +0 -79
  226. data/sandbox/itsi_file/echo_service_nonitsi/echo.proto +0 -26
  227. data/sandbox/itsi_file/echo_service_nonitsi/echo_pb.rb +0 -16
  228. data/sandbox/itsi_file/echo_service_nonitsi/echo_services_pb.rb +0 -29
  229. data/sandbox/itsi_file/echo_service_nonitsi/server.rb +0 -52
  230. data/sandbox/itsi_file/error.html +0 -2
  231. data/sandbox/itsi_file/organisations_controller.rb +0 -20
  232. data/sandbox/itsi_file/public/assets/image.png +0 -0
  233. data/sandbox/itsi_sandbox_async/Gemfile +0 -10
  234. data/sandbox/itsi_sandbox_async/Gemfile.lock +0 -69
  235. data/sandbox/itsi_sandbox_async/config.ru +0 -9
  236. data/sandbox/itsi_sandbox_hanami/.env +0 -2
  237. data/sandbox/itsi_sandbox_hanami/.gitignore +0 -6
  238. data/sandbox/itsi_sandbox_hanami/.rspec +0 -1
  239. data/sandbox/itsi_sandbox_hanami/Gemfile +0 -49
  240. data/sandbox/itsi_sandbox_hanami/Gemfile.lock +0 -440
  241. data/sandbox/itsi_sandbox_hanami/Guardfile +0 -9
  242. data/sandbox/itsi_sandbox_hanami/Procfile.dev +0 -2
  243. data/sandbox/itsi_sandbox_hanami/README.md +0 -1
  244. data/sandbox/itsi_sandbox_hanami/Rakefile +0 -3
  245. data/sandbox/itsi_sandbox_hanami/app/action.rb +0 -12
  246. data/sandbox/itsi_sandbox_hanami/app/actions/.keep +0 -0
  247. data/sandbox/itsi_sandbox_hanami/app/assets/css/app.css +0 -5
  248. data/sandbox/itsi_sandbox_hanami/app/assets/images/favicon.ico +0 -0
  249. data/sandbox/itsi_sandbox_hanami/app/assets/js/app.js +0 -1
  250. data/sandbox/itsi_sandbox_hanami/app/db/relation.rb +0 -10
  251. data/sandbox/itsi_sandbox_hanami/app/db/repo.rb +0 -10
  252. data/sandbox/itsi_sandbox_hanami/app/db/struct.rb +0 -10
  253. data/sandbox/itsi_sandbox_hanami/app/operation.rb +0 -9
  254. data/sandbox/itsi_sandbox_hanami/app/relations/.keep +0 -0
  255. data/sandbox/itsi_sandbox_hanami/app/repos/.keep +0 -0
  256. data/sandbox/itsi_sandbox_hanami/app/structs/.keep +0 -0
  257. data/sandbox/itsi_sandbox_hanami/app/templates/layouts/app.html.erb +0 -14
  258. data/sandbox/itsi_sandbox_hanami/app/view.rb +0 -9
  259. data/sandbox/itsi_sandbox_hanami/app/views/helpers.rb +0 -10
  260. data/sandbox/itsi_sandbox_hanami/bin/dev +0 -8
  261. data/sandbox/itsi_sandbox_hanami/config/app.rb +0 -8
  262. data/sandbox/itsi_sandbox_hanami/config/assets.js +0 -16
  263. data/sandbox/itsi_sandbox_hanami/config/db/migrate/.keep +0 -0
  264. data/sandbox/itsi_sandbox_hanami/config/db/seeds.rb +0 -15
  265. data/sandbox/itsi_sandbox_hanami/config/puma.rb +0 -47
  266. data/sandbox/itsi_sandbox_hanami/config/routes.rb +0 -7
  267. data/sandbox/itsi_sandbox_hanami/config/settings.rb +0 -9
  268. data/sandbox/itsi_sandbox_hanami/config.ru +0 -5
  269. data/sandbox/itsi_sandbox_hanami/db/.keep +0 -0
  270. data/sandbox/itsi_sandbox_hanami/lib/itsi_hanami/types.rb +0 -11
  271. data/sandbox/itsi_sandbox_hanami/lib/tasks/.keep +0 -0
  272. data/sandbox/itsi_sandbox_hanami/package-lock.json +0 -946
  273. data/sandbox/itsi_sandbox_hanami/package.json +0 -8
  274. data/sandbox/itsi_sandbox_hanami/spec/requests/root_spec.rb +0 -11
  275. data/sandbox/itsi_sandbox_hanami/spec/spec_helper.rb +0 -9
  276. data/sandbox/itsi_sandbox_hanami/spec/support/db/cleaning.rb +0 -42
  277. data/sandbox/itsi_sandbox_hanami/spec/support/db.rb +0 -10
  278. data/sandbox/itsi_sandbox_hanami/spec/support/features.rb +0 -5
  279. data/sandbox/itsi_sandbox_hanami/spec/support/operations.rb +0 -8
  280. data/sandbox/itsi_sandbox_hanami/spec/support/requests.rb +0 -13
  281. data/sandbox/itsi_sandbox_hanami/spec/support/rspec.rb +0 -61
  282. data/sandbox/itsi_sandbox_rack/Gemfile +0 -17
  283. data/sandbox/itsi_sandbox_rack/Gemfile.lock +0 -153
  284. data/sandbox/itsi_sandbox_rack/config.ru +0 -5
  285. data/sandbox/itsi_sandbox_rack_lint/Gemfile +0 -7
  286. data/sandbox/itsi_sandbox_rack_lint/Gemfile.lock +0 -27
  287. data/sandbox/itsi_sandbox_rack_lint/config.ru +0 -3
  288. data/sandbox/itsi_sandbox_rails/.dockerignore +0 -48
  289. data/sandbox/itsi_sandbox_rails/.gitattributes +0 -9
  290. data/sandbox/itsi_sandbox_rails/.github/dependabot.yml +0 -12
  291. data/sandbox/itsi_sandbox_rails/.github/workflows/ci.yml +0 -90
  292. data/sandbox/itsi_sandbox_rails/.gitignore +0 -35
  293. data/sandbox/itsi_sandbox_rails/.rubocop.yml +0 -8
  294. data/sandbox/itsi_sandbox_rails/.ruby-version +0 -1
  295. data/sandbox/itsi_sandbox_rails/Dockerfile +0 -69
  296. data/sandbox/itsi_sandbox_rails/Gemfile +0 -66
  297. data/sandbox/itsi_sandbox_rails/Gemfile.lock +0 -429
  298. data/sandbox/itsi_sandbox_rails/README.md +0 -24
  299. data/sandbox/itsi_sandbox_rails/Rakefile +0 -6
  300. data/sandbox/itsi_sandbox_rails/app/assets/config/manifest.js +0 -4
  301. data/sandbox/itsi_sandbox_rails/app/assets/images/.keep +0 -0
  302. data/sandbox/itsi_sandbox_rails/app/assets/stylesheets/application.css +0 -15
  303. data/sandbox/itsi_sandbox_rails/app/channels/application_cable/channel.rb +0 -4
  304. data/sandbox/itsi_sandbox_rails/app/channels/application_cable/connection.rb +0 -4
  305. data/sandbox/itsi_sandbox_rails/app/controllers/application_controller.rb +0 -4
  306. data/sandbox/itsi_sandbox_rails/app/controllers/concerns/.keep +0 -0
  307. data/sandbox/itsi_sandbox_rails/app/controllers/home_controller.rb +0 -66
  308. data/sandbox/itsi_sandbox_rails/app/controllers/live_controller.rb +0 -40
  309. data/sandbox/itsi_sandbox_rails/app/controllers/uploads_controller.rb +0 -29
  310. data/sandbox/itsi_sandbox_rails/app/helpers/application_helper.rb +0 -2
  311. data/sandbox/itsi_sandbox_rails/app/javascript/application.js +0 -3
  312. data/sandbox/itsi_sandbox_rails/app/javascript/controllers/application.js +0 -9
  313. data/sandbox/itsi_sandbox_rails/app/javascript/controllers/hello_controller.js +0 -7
  314. data/sandbox/itsi_sandbox_rails/app/javascript/controllers/index.js +0 -4
  315. data/sandbox/itsi_sandbox_rails/app/jobs/application_job.rb +0 -7
  316. data/sandbox/itsi_sandbox_rails/app/mailers/application_mailer.rb +0 -4
  317. data/sandbox/itsi_sandbox_rails/app/models/application_record.rb +0 -3
  318. data/sandbox/itsi_sandbox_rails/app/models/concerns/.keep +0 -0
  319. data/sandbox/itsi_sandbox_rails/app/models/post.rb +0 -2
  320. data/sandbox/itsi_sandbox_rails/app/views/layouts/application.html.erb +0 -23
  321. data/sandbox/itsi_sandbox_rails/app/views/layouts/mailer.html.erb +0 -13
  322. data/sandbox/itsi_sandbox_rails/app/views/layouts/mailer.text.erb +0 -1
  323. data/sandbox/itsi_sandbox_rails/app/views/pwa/manifest.json.erb +0 -22
  324. data/sandbox/itsi_sandbox_rails/app/views/pwa/service-worker.js +0 -26
  325. data/sandbox/itsi_sandbox_rails/bin/brakeman +0 -7
  326. data/sandbox/itsi_sandbox_rails/bin/bundle +0 -109
  327. data/sandbox/itsi_sandbox_rails/bin/docker-entrypoint +0 -13
  328. data/sandbox/itsi_sandbox_rails/bin/importmap +0 -4
  329. data/sandbox/itsi_sandbox_rails/bin/rails +0 -4
  330. data/sandbox/itsi_sandbox_rails/bin/rake +0 -4
  331. data/sandbox/itsi_sandbox_rails/bin/rubocop +0 -8
  332. data/sandbox/itsi_sandbox_rails/bin/setup +0 -37
  333. data/sandbox/itsi_sandbox_rails/config/application.rb +0 -27
  334. data/sandbox/itsi_sandbox_rails/config/boot.rb +0 -4
  335. data/sandbox/itsi_sandbox_rails/config/cable.yml +0 -10
  336. data/sandbox/itsi_sandbox_rails/config/credentials.yml.enc +0 -1
  337. data/sandbox/itsi_sandbox_rails/config/database.yml +0 -30
  338. data/sandbox/itsi_sandbox_rails/config/environment.rb +0 -5
  339. data/sandbox/itsi_sandbox_rails/config/environments/development.rb +0 -82
  340. data/sandbox/itsi_sandbox_rails/config/environments/production.rb +0 -106
  341. data/sandbox/itsi_sandbox_rails/config/environments/test.rb +0 -67
  342. data/sandbox/itsi_sandbox_rails/config/importmap.rb +0 -7
  343. data/sandbox/itsi_sandbox_rails/config/initializers/assets.rb +0 -12
  344. data/sandbox/itsi_sandbox_rails/config/initializers/content_security_policy.rb +0 -25
  345. data/sandbox/itsi_sandbox_rails/config/initializers/filter_parameter_logging.rb +0 -8
  346. data/sandbox/itsi_sandbox_rails/config/initializers/inflections.rb +0 -16
  347. data/sandbox/itsi_sandbox_rails/config/initializers/permissions_policy.rb +0 -13
  348. data/sandbox/itsi_sandbox_rails/config/locales/en.yml +0 -31
  349. data/sandbox/itsi_sandbox_rails/config/puma.rb +0 -34
  350. data/sandbox/itsi_sandbox_rails/config/routes.rb +0 -23
  351. data/sandbox/itsi_sandbox_rails/config/storage.yml +0 -34
  352. data/sandbox/itsi_sandbox_rails/config.ru +0 -6
  353. data/sandbox/itsi_sandbox_rails/db/migrate/20250301041554_create_posts.rb +0 -10
  354. data/sandbox/itsi_sandbox_rails/db/schema.rb +0 -23
  355. data/sandbox/itsi_sandbox_rails/db/seeds.rb +0 -9
  356. data/sandbox/itsi_sandbox_rails/lib/assets/.keep +0 -0
  357. data/sandbox/itsi_sandbox_rails/lib/tasks/.keep +0 -0
  358. data/sandbox/itsi_sandbox_rails/log/.keep +0 -0
  359. data/sandbox/itsi_sandbox_rails/public/404.html +0 -67
  360. data/sandbox/itsi_sandbox_rails/public/406-unsupported-browser.html +0 -66
  361. data/sandbox/itsi_sandbox_rails/public/422.html +0 -67
  362. data/sandbox/itsi_sandbox_rails/public/500.html +0 -66
  363. data/sandbox/itsi_sandbox_rails/public/icon.png +0 -0
  364. data/sandbox/itsi_sandbox_rails/public/icon.svg +0 -3
  365. data/sandbox/itsi_sandbox_rails/public/robots.txt +0 -1
  366. data/sandbox/itsi_sandbox_rails/storage/.keep +0 -0
  367. data/sandbox/itsi_sandbox_rails/test/application_system_test_case.rb +0 -5
  368. data/sandbox/itsi_sandbox_rails/test/channels/application_cable/connection_test.rb +0 -13
  369. data/sandbox/itsi_sandbox_rails/test/controllers/.keep +0 -0
  370. data/sandbox/itsi_sandbox_rails/test/fixtures/files/.keep +0 -0
  371. data/sandbox/itsi_sandbox_rails/test/helpers/.keep +0 -0
  372. data/sandbox/itsi_sandbox_rails/test/integration/.keep +0 -0
  373. data/sandbox/itsi_sandbox_rails/test/mailers/.keep +0 -0
  374. data/sandbox/itsi_sandbox_rails/test/models/.keep +0 -0
  375. data/sandbox/itsi_sandbox_rails/test/system/.keep +0 -0
  376. data/sandbox/itsi_sandbox_rails/test/test_helper.rb +0 -15
  377. data/sandbox/itsi_sandbox_rails/tmp/.keep +0 -0
  378. data/sandbox/itsi_sandbox_rails/tmp/pids/.keep +0 -0
  379. data/sandbox/itsi_sandbox_rails/tmp/storage/.keep +0 -0
  380. data/sandbox/itsi_sandbox_rails/vendor/.keep +0 -0
  381. data/sandbox/itsi_sandbox_rails/vendor/javascript/.keep +0 -0
  382. data/sandbox/itsi_sandbox_roda/Gemfile +0 -5
  383. data/sandbox/itsi_sandbox_roda/Gemfile.lock +0 -37
  384. data/sandbox/itsi_sandbox_roda/config.ru +0 -39
  385. data/sandbox/itsi_sinatra/Gemfile +0 -9
  386. data/sandbox/itsi_sinatra/Gemfile.lock +0 -81
  387. data/sandbox/itsi_sinatra/app.rb +0 -8
  388. data/sandbox/pebble/docker-compose.yml +0 -11
  389. data/sandbox/static_files/.env +0 -1
  390. data/sandbox/static_files/404.html +0 -25
  391. data/sandbox/static_files/_DSC0102.NEF.jpg +0 -0
  392. data/sandbox/static_files/about.html +0 -68
  393. data/sandbox/static_files/tiny.html +0 -1
  394. data/sandbox/static_files/writebook.zip +0 -0
@@ -1,164 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- $LOAD_PATH.unshift(File.dirname(__FILE__))
5
-
6
-
7
- require 'bundler/setup'
8
- require 'grpc'
9
- require 'colorize'
10
- require_relative 'lib/echo_pb'
11
- require_relative 'lib/echo_services_pb'
12
-
13
- class EchoClient
14
- # Initialize the client with options to control compression
15
- def initialize(host = 'localhost', port = 50051, compression: nil)
16
- # Available compression options:
17
- # nil - No compression (default)
18
- # :gzip - Use gzip compression
19
- # :deflate - Use deflate compression
20
- @host = host
21
- @port = port
22
- @compression = compression
23
-
24
- # Set up the channel and stub with compression options
25
- channel_args = {}
26
- if @compression
27
- # Adding compression options to channel
28
- channel_args = {
29
- 'grpc.default_compression_algorithm' => compression_algorithm,
30
- 'grpc.default_compression_level' => 2 # High compression level (0-2)
31
- }
32
- end
33
-
34
- @channel = GRPC::Core::Channel.new("#{host}:#{port}", channel_args, :this_channel_is_insecure)
35
- @stub = Echo::EchoService::Stub.new("#{host}:#{port}", :this_channel_is_insecure, channel_args: channel_args)
36
- end
37
-
38
- # Map compression symbol to GRPC compression algorithm constant
39
- def compression_algorithm
40
- case @compression
41
- when :gzip
42
- 1 # GRPC::Core::CompressionAlgorithm::GZIP
43
- when :deflate
44
- 2 # GRPC::Core::CompressionAlgorithm::DEFLATE
45
- else
46
- 0 # GRPC::Core::CompressionAlgorithm::NONE
47
- end
48
- end
49
-
50
- # Simple unary RPC
51
- def echo(message)
52
- puts "Calling echo with #{message.inspect}".blue
53
- request = Echo::EchoRequest.new(message: message)
54
- response = @stub.echo(request)
55
- puts "Response: #{response.message.inspect}, Count: #{response.count}".green
56
- response
57
- end
58
-
59
- # Server streaming RPC
60
- def echo_stream(message)
61
- puts "Calling echo_stream with #{message.inspect}".blue
62
- request = Echo::EchoRequest.new(message: message)
63
- responses = []
64
-
65
- @stub.echo_stream(request).each do |response|
66
- puts "Stream Response: #{response.message.inspect}, Count: #{response.count}".green
67
- responses << response
68
- end
69
-
70
- responses
71
- end
72
-
73
- # Client streaming RPC
74
- def echo_collect(messages)
75
- puts "Calling echo_collect with #{messages.length} messages".blue
76
-
77
- # Create a request enumerator
78
- request_enum = Enumerator.new do |yielder|
79
- messages.each do |message|
80
- puts "Sending: #{message.inspect}".cyan
81
- yielder << Echo::EchoRequest.new(message: message)
82
- end
83
- end
84
-
85
- # Call with the enumerator
86
- response = @stub.echo_collect(request_enum)
87
-
88
- puts "Collect Response: #{response.message.inspect}, Count: #{response.count}".green
89
- response
90
- end
91
-
92
- # Bidirectional streaming RPC
93
- def echo_bidirectional(messages)
94
- puts "Calling echo_bidirectional with #{messages.length} messages".blue
95
- responses = []
96
-
97
- # Create a request enumerator
98
- request_enum = Enumerator.new do |yielder|
99
- messages.each do |message|
100
- puts "Sending: #{message.inspect}".cyan
101
- yielder << Echo::EchoRequest.new(message: message)
102
- end
103
- end
104
-
105
- # Call bidirectional with enumerator and collect responses
106
- @stub.echo_bidirectional(request_enum).each do |response|
107
- puts "Bidi Response: #{response.message.inspect}, Count: #{response.count}".green
108
- responses << response
109
- end
110
-
111
- responses
112
- end
113
-
114
- # Get the current compression configuration
115
- def compression_info
116
- if @compression
117
- "Using #{@compression} compression (algorithm: #{compression_algorithm}, level: 2)"
118
- else
119
- "No compression"
120
- end
121
- end
122
-
123
- def close
124
- @channel.close
125
- end
126
- end
127
-
128
- # Only execute if this file is run directly
129
- if __FILE__ == $PROGRAM_NAME
130
- # Usage example
131
- compression = ARGV[0]&.to_sym if ARGV[0]
132
-
133
- # Show compression options if requested
134
- if compression == :help
135
- puts "Available compression options:".yellow
136
- puts " none - No compression (default)"
137
- puts " gzip - Use gzip compression"
138
- puts " deflate - Use deflate compression"
139
- puts "\nUsage: ruby echo_client.rb [compression]"
140
- exit
141
- end
142
-
143
- client = EchoClient.new('localhost', 50051, compression: compression)
144
- puts "Compression: #{client.compression_info}".yellow
145
-
146
- begin
147
- # Unary call
148
- client.echo("Hello from Ruby client!")
149
-
150
- # Server streaming
151
- client.echo_stream("Stream me back!")
152
-
153
- # Client streaming
154
- client.echo_collect(["Message 1", "Message 2", "Message 3"])
155
-
156
- # Bidirectional streaming
157
- client.echo_bidirectional(["Bidi 1", "Bidi 2", "Bidi 3"])
158
-
159
- rescue GRPC::BadStatus => e
160
- puts "Error from server: #{e.message}".red
161
- ensure
162
- client.close
163
- end
164
- end
@@ -1,17 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Create directory for generated code
4
- mkdir -p lib
5
-
6
- # Path to the proto file
7
- PROTO_FILE="../echo.proto"
8
- PROTO_DIR="$(dirname "$PROTO_FILE")"
9
-
10
- # Generate Ruby code from proto file
11
- grpc_tools_ruby_protoc \
12
- --ruby_out=./lib \
13
- --grpc_out=./lib \
14
- --proto_path="$PROTO_DIR" \
15
- "$PROTO_FILE"
16
-
17
- echo "Ruby gRPC code generated successfully!"
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: echo.proto
4
-
5
- require 'google/protobuf'
6
-
7
-
8
- descriptor_data = "\n\necho.proto\x12\x04\x65\x63ho\"\x1e\n\x0b\x45\x63hoRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\".\n\x0c\x45\x63hoResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x32\xf3\x01\n\x0b\x45\x63hoService\x12/\n\x04\x45\x63ho\x12\x11.echo.EchoRequest\x1a\x12.echo.EchoResponse\"\x00\x12\x37\n\nEchoStream\x12\x11.echo.EchoRequest\x1a\x12.echo.EchoResponse\"\x00\x30\x01\x12\x38\n\x0b\x45\x63hoCollect\x12\x11.echo.EchoRequest\x1a\x12.echo.EchoResponse\"\x00(\x01\x12@\n\x11\x45\x63hoBidirectional\x12\x11.echo.EchoRequest\x1a\x12.echo.EchoResponse\"\x00(\x01\x30\x01\x62\x06proto3"
9
-
10
- pool = Google::Protobuf::DescriptorPool.generated_pool
11
- pool.add_serialized_file(descriptor_data)
12
-
13
- module Echo
14
- EchoRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("echo.EchoRequest").msgclass
15
- EchoResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("echo.EchoResponse").msgclass
16
- end
@@ -1,29 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # Source: echo.proto for package 'echo'
3
-
4
- require 'grpc'
5
- require_relative 'echo_pb'
6
-
7
- module Echo
8
- module EchoService
9
- class Service
10
-
11
- include ::GRPC::GenericService
12
-
13
- self.marshal_class_method = :encode
14
- self.unmarshal_class_method = :decode
15
- self.service_name = 'echo.EchoService'
16
-
17
- # Simple unary method
18
- rpc :Echo, ::Echo::EchoRequest, ::Echo::EchoResponse
19
- # Server streaming method
20
- rpc :EchoStream, ::Echo::EchoRequest, stream(::Echo::EchoResponse)
21
- # Client streaming method
22
- rpc :EchoCollect, stream(::Echo::EchoRequest), ::Echo::EchoResponse
23
- # Bidirectional streaming method
24
- rpc :EchoBidirectional, stream(::Echo::EchoRequest), stream(::Echo::EchoResponse)
25
- end
26
-
27
- Stub = Service.rpc_stub_class
28
- end
29
- end
@@ -1,64 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require_relative 'echo_client'
5
- require 'optparse'
6
- require 'colorize'
7
-
8
- options = {
9
- host: 'localhost',
10
- port: 3000,
11
- compression: nil
12
- }
13
-
14
- OptionParser.new do |opts|
15
- opts.banner = 'Usage: run_client.rb [options]'
16
-
17
- opts.on('-h', '--host HOST', 'Server hostname') do |host|
18
- options[:host] = host
19
- end
20
-
21
- opts.on('-p', '--port PORT', 'Server port') do |port|
22
- options[:port] = port.to_i
23
- end
24
-
25
- opts.on('-c', '--compression COMPRESSION', 'Compression (none, gzip, deflate)') do |comp|
26
- options[:compression] = comp.to_sym unless comp == 'none'
27
- end
28
-
29
- opts.on('-m', '--message MESSAGE', 'Message to send') do |msg|
30
- options[:message] = msg
31
- end
32
-
33
- opts.on('--help', 'Show this help message') do
34
- puts opts
35
- exit
36
- end
37
- end.parse!
38
-
39
- # Set default message if not provided
40
- options[:message] ||= 'Hello from configurable Ruby client!'
41
-
42
- puts "Connecting to #{options[:host]}:#{options[:port]}".yellow
43
- puts "Compression: #{options[:compression] || 'none'}".yellow
44
- puts "Message: #{options[:message]}".yellow
45
-
46
- client = EchoClient.new(options[:host], options[:port], compression: options[:compression])
47
-
48
- begin
49
- # # Unary call
50
- client.echo(options[:message])
51
-
52
- # # Server streaming
53
- client.echo_stream(options[:message])
54
-
55
- # Client streaming
56
- client.echo_collect([options[:message], "#{options[:message]} 2", "#{options[:message]} 3"])
57
-
58
- # Bidirectional streaming
59
- client.echo_bidirectional([options[:message], "#{options[:message]} B", "#{options[:message]} C"])
60
- rescue GRPC::BadStatus => e
61
- puts "Error from server: #{e.message}".red
62
- ensure
63
- client.close
64
- end
@@ -1,20 +0,0 @@
1
- #!/bin/bash
2
-
3
- # This script tests the echo client with different compression settings
4
-
5
- # Message to use for testing
6
- MESSAGE="This is a test message that will be repeated multiple times to demonstrate compression. $(printf '%s' {1..10})"
7
-
8
- echo "=== Testing with NO compression ==="
9
- ./run_client.rb -m "$MESSAGE" -c none
10
-
11
- echo ""
12
- echo "=== Testing with GZIP compression ==="
13
- ./run_client.rb -m "$MESSAGE" -c gzip
14
-
15
- echo ""
16
- echo "=== Testing with DEFLATE compression ==="
17
- ./run_client.rb -m "$MESSAGE" -c deflate
18
-
19
- echo ""
20
- echo "All compression tests completed."
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- # gem "rails"
6
-
7
- gem 'grpc'
8
-
9
- gem 'google-protobuf'
10
- gem 'debug'
@@ -1,79 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- bigdecimal (3.1.9)
5
- date (3.4.1)
6
- debug (1.10.0)
7
- irb (~> 1.10)
8
- reline (>= 0.3.8)
9
- google-protobuf (4.30.2)
10
- bigdecimal
11
- rake (>= 13)
12
- google-protobuf (4.30.2-aarch64-linux)
13
- bigdecimal
14
- rake (>= 13)
15
- google-protobuf (4.30.2-arm64-darwin)
16
- bigdecimal
17
- rake (>= 13)
18
- google-protobuf (4.30.2-x86-linux)
19
- bigdecimal
20
- rake (>= 13)
21
- google-protobuf (4.30.2-x86_64-darwin)
22
- bigdecimal
23
- rake (>= 13)
24
- google-protobuf (4.30.2-x86_64-linux)
25
- bigdecimal
26
- rake (>= 13)
27
- googleapis-common-protos-types (1.19.0)
28
- google-protobuf (>= 3.18, < 5.a)
29
- grpc (1.71.0)
30
- google-protobuf (>= 3.25, < 5.0)
31
- googleapis-common-protos-types (~> 1.0)
32
- grpc (1.71.0-aarch64-linux)
33
- google-protobuf (>= 3.25, < 5.0)
34
- googleapis-common-protos-types (~> 1.0)
35
- grpc (1.71.0-arm64-darwin)
36
- google-protobuf (>= 3.25, < 5.0)
37
- googleapis-common-protos-types (~> 1.0)
38
- grpc (1.71.0-x86-linux)
39
- google-protobuf (>= 3.25, < 5.0)
40
- googleapis-common-protos-types (~> 1.0)
41
- grpc (1.71.0-x86_64-darwin)
42
- google-protobuf (>= 3.25, < 5.0)
43
- googleapis-common-protos-types (~> 1.0)
44
- grpc (1.71.0-x86_64-linux)
45
- google-protobuf (>= 3.25, < 5.0)
46
- googleapis-common-protos-types (~> 1.0)
47
- io-console (0.8.0)
48
- irb (1.15.1)
49
- pp (>= 0.6.0)
50
- rdoc (>= 4.0.0)
51
- reline (>= 0.4.2)
52
- pp (0.6.2)
53
- prettyprint
54
- prettyprint (0.2.0)
55
- psych (5.2.3)
56
- date
57
- stringio
58
- rake (13.2.1)
59
- rdoc (6.13.0)
60
- psych (>= 4.0.0)
61
- reline (0.6.0)
62
- io-console (~> 0.5)
63
- stringio (3.1.6)
64
-
65
- PLATFORMS
66
- aarch64-linux
67
- arm64-darwin
68
- ruby
69
- x86-linux
70
- x86_64-darwin
71
- x86_64-linux
72
-
73
- DEPENDENCIES
74
- debug
75
- google-protobuf
76
- grpc
77
-
78
- BUNDLED WITH
79
- 2.6.3
@@ -1,26 +0,0 @@
1
- syntax = "proto3";
2
-
3
- package echo;
4
-
5
- service EchoService {
6
- // Simple unary method
7
- rpc Echo(EchoRequest) returns (EchoResponse) {}
8
-
9
- // Server streaming method
10
- rpc EchoStream(EchoRequest) returns (stream EchoResponse) {}
11
-
12
- // Client streaming method
13
- rpc EchoCollect(stream EchoRequest) returns (EchoResponse) {}
14
-
15
- // Bidirectional streaming method
16
- rpc EchoBidirectional(stream EchoRequest) returns (stream EchoResponse) {}
17
- }
18
-
19
- message EchoRequest {
20
- string message = 1;
21
- }
22
-
23
- message EchoResponse {
24
- string message = 1;
25
- int32 count = 2;
26
- }
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: echo.proto
4
-
5
- require 'google/protobuf'
6
-
7
-
8
- descriptor_data = "\n\necho.proto\x12\x04\x65\x63ho\"\x1e\n\x0b\x45\x63hoRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\".\n\x0c\x45\x63hoResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x32\xf3\x01\n\x0b\x45\x63hoService\x12/\n\x04\x45\x63ho\x12\x11.echo.EchoRequest\x1a\x12.echo.EchoResponse\"\x00\x12\x37\n\nEchoStream\x12\x11.echo.EchoRequest\x1a\x12.echo.EchoResponse\"\x00\x30\x01\x12\x38\n\x0b\x45\x63hoCollect\x12\x11.echo.EchoRequest\x1a\x12.echo.EchoResponse\"\x00(\x01\x12@\n\x11\x45\x63hoBidirectional\x12\x11.echo.EchoRequest\x1a\x12.echo.EchoResponse\"\x00(\x01\x30\x01\x62\x06proto3"
9
-
10
- pool = Google::Protobuf::DescriptorPool.generated_pool
11
- pool.add_serialized_file(descriptor_data)
12
-
13
- module Echo
14
- EchoRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("echo.EchoRequest").msgclass
15
- EchoResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("echo.EchoResponse").msgclass
16
- end
@@ -1,29 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # Source: echo.proto for package 'echo'
3
-
4
- require 'grpc'
5
- require_relative 'echo_pb'
6
-
7
- module Echo
8
- module EchoService
9
- class Service
10
-
11
- include ::GRPC::GenericService
12
-
13
- self.marshal_class_method = :encode
14
- self.unmarshal_class_method = :decode
15
- self.service_name = 'echo.EchoService'
16
-
17
- # Simple unary method
18
- rpc :Echo, ::Echo::EchoRequest, ::Echo::EchoResponse
19
- # Server streaming method
20
- rpc :EchoStream, ::Echo::EchoRequest, stream(::Echo::EchoResponse)
21
- # Client streaming method
22
- rpc :EchoCollect, stream(::Echo::EchoRequest), ::Echo::EchoResponse
23
- # Bidirectional streaming method
24
- rpc :EchoBidirectional, stream(::Echo::EchoRequest), stream(::Echo::EchoResponse)
25
- end
26
-
27
- Stub = Service.rpc_stub_class
28
- end
29
- end
@@ -1,52 +0,0 @@
1
- require 'grpc'
2
- require_relative 'echo_services_pb'
3
- require_relative 'echo_pb' # Your generated file
4
-
5
- # Define the EchoService implementation
6
- class EchoService < Echo::EchoService::Service
7
- # Implement the Echo method
8
- def echo(request, _unused_call)
9
- Echo::EchoResponse.new(message: "Echo: #{request.message}", count: 1)
10
- end
11
-
12
- # Implement the EchoStream method (streaming response)
13
- def echo_stream(request, _unused_call)
14
- Enumerator.new do |yielder|
15
- 3.times do |i|
16
- yielder << Echo::EchoResponse.new(message: "#{request.message} - part #{i + 1}", count: i + 1)
17
- sleep 0.5 # Simulate processing time
18
- end
19
- end
20
- end
21
-
22
- # Implement the EchoCollect method (streaming request)
23
- def echo_collect(call)
24
- count = 0
25
- message = ''
26
- call.each_remote_read do |req|
27
- count += 1
28
- message += req.message + ' '
29
- end
30
- Echo::EchoResponse.new(message: message.strip, count: count)
31
- end
32
-
33
- # Implement the EchoBidirectional method (bidirectional streaming)
34
- def echo_bidirectional(requests, _unused_call)
35
- Enumerator.new do |yielder|
36
- requests.each do |req|
37
- yielder << Echo::EchoResponse.new(message: "Echoing back: #{req.message}", count: req.message.length)
38
- end
39
- end
40
- end
41
- end
42
-
43
- # Create the gRPC server
44
- def main
45
- server = GRPC::RpcServer.new
46
- server.add_http2_port('0.0.0.0:50051', :this_port_is_insecure)
47
- server.handle(EchoService)
48
- puts 'Server running on 0.0.0.0:50051'
49
- server.run_till_terminated
50
- end
51
-
52
- main if __FILE__ == $PROGRAM_NAME
@@ -1,2 +0,0 @@
1
- <h1>I've updated the content</h1>
2
- <p>Here's some content</p>
@@ -1,20 +0,0 @@
1
- class OrganisationsController
2
- def organisation_serve(request)
3
- response = request.response
4
- response.status = 200
5
- response.add_header('Content-Type', 'text/plain')
6
- response << 'Serve Organisation!'
7
- response.close
8
- end
9
-
10
- def organisation_create(request)
11
- puts 'Create organisation'
12
- request.close
13
- end
14
- end
15
-
16
- location '/organisations' do
17
- controller OrganisationsController.new
18
- get '/:id', :organisation_serve
19
- post '/:id', :organisation_create
20
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # gem "rails"
6
-
7
- # gem "async"
8
- gem "debug"
9
- gem "itsi-server", path: "../../gems/server"
10
- gem "itsi-scheduler", path: "../../gems/scheduler"
@@ -1,69 +0,0 @@
1
- PATH
2
- remote: ../../../osprey_scheduler
3
- specs:
4
- osprey_scheduler (0.1.0)
5
- async (= 2.21.1)
6
- rb_sys (~> 0.9.91)
7
-
8
- PATH
9
- remote: ../../gems/server
10
- specs:
11
- itsi-server (0.1.1)
12
- libclang (~> 14.0)
13
- rack (~> 2.2)
14
- rb_sys (~> 0.9.91)
15
-
16
- GEM
17
- remote: https://rubygems.org/
18
- specs:
19
- async (2.21.1)
20
- console (~> 1.29)
21
- fiber-annotation
22
- io-event (~> 1.6, >= 1.6.5)
23
- console (1.29.3)
24
- fiber-annotation
25
- fiber-local (~> 1.1)
26
- json
27
- date (3.4.1)
28
- debug (1.10.0)
29
- irb (~> 1.10)
30
- reline (>= 0.3.8)
31
- fiber-annotation (0.2.0)
32
- fiber-local (1.1.0)
33
- fiber-storage
34
- fiber-storage (1.0.0)
35
- io-console (0.8.0)
36
- io-event (1.9.0)
37
- irb (1.15.1)
38
- pp (>= 0.6.0)
39
- rdoc (>= 4.0.0)
40
- reline (>= 0.4.2)
41
- json (2.10.1)
42
- libclang (14.0.6-arm64-darwin)
43
- pp (0.6.2)
44
- prettyprint
45
- prettyprint (0.2.0)
46
- psych (5.2.3)
47
- date
48
- stringio
49
- rack (2.2.12)
50
- rake-compiler-dock (1.9.1)
51
- rb_sys (0.9.111)
52
- rake-compiler-dock (= 1.9.1)
53
- rdoc (6.12.0)
54
- psych (>= 4.0.0)
55
- reline (0.6.0)
56
- io-console (~> 0.5)
57
- stringio (3.1.5)
58
-
59
- PLATFORMS
60
- arm64-darwin-23
61
- ruby
62
-
63
- DEPENDENCIES
64
- debug
65
- itsi-server!
66
- osprey_scheduler!
67
-
68
- BUNDLED WITH
69
- 2.6.3
@@ -1,9 +0,0 @@
1
- require "osprey/scheduler"
2
-
3
- run lambda { |env|
4
- # 5.times do |i|
5
- # puts "#{i}"
6
- # sleep 0.3
7
- # end
8
- [200, { 'Content-Type' => 'text/plain' }, ['foo']]
9
- }
@@ -1,2 +0,0 @@
1
- # This is checked into source control, so put sensitive values into `.env.local`
2
- DATABASE_URL=sqlite://db/itsi_hanami.sqlite
@@ -1,6 +0,0 @@
1
- .env*.local
2
- log/*
3
- public/
4
- node_modules/
5
- db/*.sqlite
6
- spec/examples.txt
@@ -1 +0,0 @@
1
- --require spec_helper