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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/Cargo.lock +924 -385
- data/README.md +67 -55
- data/crates/itsi_server/Cargo.toml +7 -4
- data/crates/itsi_server/src/ruby_types/itsi_http_request.rs +2 -2
- data/crates/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +150 -19
- data/crates/itsi_server/src/ruby_types/itsi_server.rs +1 -0
- data/crates/itsi_server/src/server/binds/listener.rs +34 -29
- data/crates/itsi_server/src/server/binds/tls/locked_dir_cache.rs +2 -2
- data/crates/itsi_server/src/server/binds/tls.rs +1 -1
- data/crates/itsi_server/src/server/middleware_stack/middleware.rs +33 -28
- data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs +56 -3
- data/crates/itsi_server/src/server/middleware_stack/middlewares/csp.rs +179 -0
- data/crates/itsi_server/src/server/middleware_stack/middlewares/mod.rs +25 -2
- data/crates/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +3 -3
- data/crates/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +2 -1
- data/crates/itsi_server/src/server/middleware_stack/mod.rs +32 -34
- data/crates/itsi_server/src/server/serve_strategy/cluster_mode.rs +10 -4
- data/crates/itsi_server/src/server/serve_strategy/single_mode.rs +30 -7
- data/crates/itsi_server/src/server/thread_worker.rs +2 -2
- data/crates/itsi_server/src/services/static_file_server.rs +30 -28
- data/crates/itsi_tracing/src/lib.rs +39 -8
- data/docker/Dockerfile +12 -0
- data/docs/content/_index.md +18 -10
- data/docs/content/acknowledgements/_index.md +43 -0
- data/docs/content/configuration/_index.md +98 -0
- data/docs/content/contact/_index.md +7 -0
- data/docs/content/faqs/_index.md +27 -0
- data/docs/content/features/_index.md +285 -0
- data/docs/content/getting_started/_index.md +70 -0
- data/docs/content/getting_started/local_development.md +40 -0
- data/docs/content/getting_started/logging.md +16 -0
- data/docs/content/getting_started/running_itsi_in_production.md +24 -0
- data/docs/content/itsi-server-100.png +0 -0
- data/docs/content/itsi_scheduler/_index.md +105 -0
- data/docs/content/itsi_scheduler/itsi-scheduler-100.png +0 -0
- data/docs/content/ruby-lsp.png +0 -0
- data/docs/content/ruby.svg +948 -0
- data/docs/data/icons.yaml +949 -0
- data/docs/hugo.yaml +27 -28
- data/fairytale.txt +34 -0
- data/gems/scheduler/Cargo.lock +46 -46
- data/gems/scheduler/README.md +53 -24
- data/gems/scheduler/itsi-scheduler-100.png +0 -0
- data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
- data/gems/server/Cargo.lock +932 -382
- data/gems/server/README.md +2 -0
- data/gems/server/exe/itsi +5 -5
- data/gems/server/lib/itsi/http_request.rb +1 -0
- data/gems/server/lib/itsi/server/config/config_helpers.rb +93 -0
- data/gems/server/lib/itsi/server/config/dsl.rb +98 -37
- data/gems/server/lib/itsi/server/config/known_paths/KitchensinkDirectories.txt +2346 -0
- data/gems/server/lib/itsi/server/config/known_paths/Randomfiles.txt +24 -0
- data/gems/server/lib/itsi/server/config/known_paths/UnixDotfiles.txt +52 -0
- data/gems/server/lib/itsi/server/config/known_paths/backdoors/ASP_CommonBackdoors.txt +29 -0
- data/gems/server/lib/itsi/server/config/known_paths/backdoors/bot_control_panels.txt +1668 -0
- data/gems/server/lib/itsi/server/config/known_paths/backdoors/shells.txt +1167 -0
- data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_HTTP_POST.txt +7 -0
- data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_HTTP_POST_Windows.txt +6 -0
- data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_Microsoft.txt +79 -0
- data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_XPlatform.txt +3948 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/README.md +5 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/drupal_plugins.txt +6320 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/drupal_themes.txt +828 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/joomla_plugins.txt +224 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/joomla_themes.txt +30 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/php-nuke.txt +2142 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wordpress.txt +1566 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_common_theme_files.txt +46 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins.txt +13366 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins_full.txt +68662 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins_top225.txt +225 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_themes.readme +12 -0
- data/gems/server/lib/itsi/server/config/known_paths/cms/wp_themes.txt +7336 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/3CharExtBrute.txt +17576 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/CommonWebExtensions.txt +80 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Backup.txt +14 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Common.txt +865 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Compressed.txt +186 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Mostcommon.txt +30 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Skipfish.txt +93 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/WordlistSkipfish.txt +1918 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/copy_of.txt +8 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-directories-lowercase.txt +56180 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-directories.txt +62290 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-extensions-lowercase.txt +2367 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-extensions.txt +2450 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-files-lowercase.txt +35323 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-files.txt +37037 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-words-lowercase.txt +107982 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-words.txt +119600 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-directories-lowercase.txt +26593 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-directories.txt +30009 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-extensions-lowercase.txt +1233 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-extensions.txt +1289 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-files-lowercase.txt +16243 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-files.txt +17128 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-words-lowercase.txt +56293 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-words.txt +63087 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-directories-lowercase.txt +17776 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-directories.txt +20122 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-extensions-lowercase.txt +914 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-extensions.txt +963 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-files-lowercase.txt +10848 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-files.txt +11424 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-words-lowercase.txt +38267 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-words.txt +43003 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/spanish.txt +445 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/test_demo.txt +36 -0
- data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/upload_variants.txt +44 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/Logins.txt +71 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/cfm.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/html.txt +295 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/jsp.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/php.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/windows-asp.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/windows-aspx.txt +294 -0
- data/gems/server/lib/itsi/server/config/known_paths/password-file-locations/Passwords.txt +47 -0
- data/gems/server/lib/itsi/server/config/known_paths/php/PHP.txt +30 -0
- data/gems/server/lib/itsi/server/config/known_paths/php/PHP_CommonBackdoors.txt +5 -0
- data/gems/server/lib/itsi/server/config/known_paths/proxy-conf.txt +31 -0
- data/gems/server/lib/itsi/server/config/known_paths/tftp.txt +79 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ADFS.txt +86 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/AdobeXML.txt +16 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Apache.txt +101 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ApacheTomcat.txt +47 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Apache_Axis.txt +16 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ColdFusion.txt +111 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/FatwireCMS.txt +390 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Frontpage.txt +38 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/HP_System_Mgmt_Homepage.txt +239 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/HTTP_POST_Microsoft.txt +2 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Hyperion.txt +578 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/IIS.txt +187 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JBoss.txt +5 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JRun.txt +13 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JavaServlets_Common.txt +3 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Joomla_exploitable.txt +1937 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/LotusNotes.txt +206 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Netware.txt +18 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Oracle9i.txt +60 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/OracleAppServer.txt +192 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/README.md +6 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Ruby_Rails.txt +121 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SAP.txt +463 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Sharepoint.txt +1707 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SiteMinder.txt +19 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SunAppServerGlassfish.txt +51 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SuniPlanet.txt +35 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Vignette.txt +73 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Weblogic.txt +160 -0
- data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Websphere.txt +366 -0
- data/gems/server/lib/itsi/server/config/known_paths/wellknown-rfc5785.txt +30 -0
- data/gems/server/lib/itsi/server/config/known_paths.rb +17 -0
- data/gems/server/lib/itsi/server/config/middleware/_index.md +54 -0
- data/gems/server/lib/itsi/server/config/middleware/log_requests.md +63 -0
- data/gems/server/lib/itsi/server/config/middleware/log_requests.rb +33 -0
- data/gems/server/lib/itsi/server/config/middleware.rb +9 -0
- data/gems/server/lib/itsi/server/config/option.rb +9 -0
- data/gems/server/lib/itsi/server/config/options/_index.md +36 -0
- data/gems/server/lib/itsi/server/config/options/fiber_scheduler.md +35 -0
- data/gems/server/lib/itsi/server/config/options/fiber_scheduler.rb +18 -0
- data/gems/server/lib/itsi/server/config/options/threads.md +39 -0
- data/gems/server/lib/itsi/server/config/options/threads.rb +17 -0
- data/gems/server/lib/itsi/server/config/options/workers.md +43 -0
- data/gems/server/lib/itsi/server/config/options/workers.rb +17 -0
- data/gems/server/lib/itsi/server/config/typed_struct.rb +203 -0
- data/gems/server/lib/itsi/server/config.rb +124 -30
- data/gems/server/lib/itsi/server/signal_trap.rb +5 -1
- data/gems/server/lib/itsi/server/typed_handlers/source_parser.rb +1 -1
- data/gems/server/lib/itsi/server/version.rb +1 -1
- data/gems/server/lib/itsi/server.rb +27 -6
- data/gems/server/lib/ruby_lsp/itsi/addon.rb +64 -48
- data/gems/server/test/helpers/test_helper.rb +64 -5
- data/gems/server/test/middleware/test_log_requests.rb +17 -0
- data/gems/server/test/options/test_threads.rb +15 -0
- data/gems/server/test/options/test_workers.rb +18 -0
- data/gems/server/test/test_itsi_server.rb +81 -94
- data/itsi-scheduler-100.png +0 -0
- data/itsi-server-100.png +0 -0
- data/lib/itsi/version.rb +1 -1
- data/tasks.txt +36 -28
- metadata +147 -215
- data/crates/_index.md +0 -0
- data/crates/itsi_server/src/ruby_types/README.md +0 -21
- data/crates/itsi_server/test.md +0 -14
- data/docs/Itsi.rb +0 -17
- data/docs/content/about.md +0 -6
- data/docs/content/docs/_index.md +0 -18
- data/docs/content/docs/first-page.md +0 -9
- data/docs/content/docs/folder/_index.md +0 -10
- data/docs/content/docs/folder/leaf.md +0 -7
- data/foo/Itsi.rb +0 -122
- data/gems/_index.md +0 -18
- data/gems/scheduler/CHANGELOG.md +0 -5
- data/gems/scheduler/CODE_OF_CONDUCT.md +0 -139
- data/gems/scheduler/LICENSE.txt +0 -21
- data/gems/scheduler/_index.md +0 -7
- data/gems/server/CHANGELOG.md +0 -10
- data/gems/server/CODE_OF_CONDUCT.md +0 -139
- data/gems/server/LICENSE.txt +0 -21
- data/gems/server/_index.md +0 -6
- data/sandbox/README.md +0 -5
- data/sandbox/deploy/main.tf +0 -238
- data/sandbox/deploy/outputs.tf +0 -4
- data/sandbox/deploy/vars.tf +0 -11
- data/sandbox/falcon_benchmark/Gemfile +0 -10
- data/sandbox/falcon_benchmark/Gemfile.lock +0 -140
- data/sandbox/falcon_benchmark/config.ru +0 -54
- data/sandbox/itsi_file/Gemfile +0 -13
- data/sandbox/itsi_file/Gemfile.lock +0 -111
- data/sandbox/itsi_file/Itsi.rb +0 -473
- data/sandbox/itsi_file/call.json +0 -1
- data/sandbox/itsi_file/echo_client/Gemfile +0 -10
- data/sandbox/itsi_file/echo_client/Gemfile.lock +0 -27
- data/sandbox/itsi_file/echo_client/README.md +0 -95
- data/sandbox/itsi_file/echo_client/echo_client.rb +0 -164
- data/sandbox/itsi_file/echo_client/gen_proto.sh +0 -17
- data/sandbox/itsi_file/echo_client/lib/echo_pb.rb +0 -16
- data/sandbox/itsi_file/echo_client/lib/echo_services_pb.rb +0 -29
- data/sandbox/itsi_file/echo_client/run_client.rb +0 -64
- data/sandbox/itsi_file/echo_client/test_compressions.sh +0 -20
- data/sandbox/itsi_file/echo_service_nonitsi/Gemfile +0 -10
- data/sandbox/itsi_file/echo_service_nonitsi/Gemfile.lock +0 -79
- data/sandbox/itsi_file/echo_service_nonitsi/echo.proto +0 -26
- data/sandbox/itsi_file/echo_service_nonitsi/echo_pb.rb +0 -16
- data/sandbox/itsi_file/echo_service_nonitsi/echo_services_pb.rb +0 -29
- data/sandbox/itsi_file/echo_service_nonitsi/server.rb +0 -52
- data/sandbox/itsi_file/error.html +0 -2
- data/sandbox/itsi_file/organisations_controller.rb +0 -20
- data/sandbox/itsi_file/public/assets/image.png +0 -0
- data/sandbox/itsi_sandbox_async/Gemfile +0 -10
- data/sandbox/itsi_sandbox_async/Gemfile.lock +0 -69
- data/sandbox/itsi_sandbox_async/config.ru +0 -9
- data/sandbox/itsi_sandbox_hanami/.env +0 -2
- data/sandbox/itsi_sandbox_hanami/.gitignore +0 -6
- data/sandbox/itsi_sandbox_hanami/.rspec +0 -1
- data/sandbox/itsi_sandbox_hanami/Gemfile +0 -49
- data/sandbox/itsi_sandbox_hanami/Gemfile.lock +0 -440
- data/sandbox/itsi_sandbox_hanami/Guardfile +0 -9
- data/sandbox/itsi_sandbox_hanami/Procfile.dev +0 -2
- data/sandbox/itsi_sandbox_hanami/README.md +0 -1
- data/sandbox/itsi_sandbox_hanami/Rakefile +0 -3
- data/sandbox/itsi_sandbox_hanami/app/action.rb +0 -12
- data/sandbox/itsi_sandbox_hanami/app/actions/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/app/assets/css/app.css +0 -5
- data/sandbox/itsi_sandbox_hanami/app/assets/images/favicon.ico +0 -0
- data/sandbox/itsi_sandbox_hanami/app/assets/js/app.js +0 -1
- data/sandbox/itsi_sandbox_hanami/app/db/relation.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/app/db/repo.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/app/db/struct.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/app/operation.rb +0 -9
- data/sandbox/itsi_sandbox_hanami/app/relations/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/app/repos/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/app/structs/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/app/templates/layouts/app.html.erb +0 -14
- data/sandbox/itsi_sandbox_hanami/app/view.rb +0 -9
- data/sandbox/itsi_sandbox_hanami/app/views/helpers.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/bin/dev +0 -8
- data/sandbox/itsi_sandbox_hanami/config/app.rb +0 -8
- data/sandbox/itsi_sandbox_hanami/config/assets.js +0 -16
- data/sandbox/itsi_sandbox_hanami/config/db/migrate/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/config/db/seeds.rb +0 -15
- data/sandbox/itsi_sandbox_hanami/config/puma.rb +0 -47
- data/sandbox/itsi_sandbox_hanami/config/routes.rb +0 -7
- data/sandbox/itsi_sandbox_hanami/config/settings.rb +0 -9
- data/sandbox/itsi_sandbox_hanami/config.ru +0 -5
- data/sandbox/itsi_sandbox_hanami/db/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/lib/itsi_hanami/types.rb +0 -11
- data/sandbox/itsi_sandbox_hanami/lib/tasks/.keep +0 -0
- data/sandbox/itsi_sandbox_hanami/package-lock.json +0 -946
- data/sandbox/itsi_sandbox_hanami/package.json +0 -8
- data/sandbox/itsi_sandbox_hanami/spec/requests/root_spec.rb +0 -11
- data/sandbox/itsi_sandbox_hanami/spec/spec_helper.rb +0 -9
- data/sandbox/itsi_sandbox_hanami/spec/support/db/cleaning.rb +0 -42
- data/sandbox/itsi_sandbox_hanami/spec/support/db.rb +0 -10
- data/sandbox/itsi_sandbox_hanami/spec/support/features.rb +0 -5
- data/sandbox/itsi_sandbox_hanami/spec/support/operations.rb +0 -8
- data/sandbox/itsi_sandbox_hanami/spec/support/requests.rb +0 -13
- data/sandbox/itsi_sandbox_hanami/spec/support/rspec.rb +0 -61
- data/sandbox/itsi_sandbox_rack/Gemfile +0 -17
- data/sandbox/itsi_sandbox_rack/Gemfile.lock +0 -153
- data/sandbox/itsi_sandbox_rack/config.ru +0 -5
- data/sandbox/itsi_sandbox_rack_lint/Gemfile +0 -7
- data/sandbox/itsi_sandbox_rack_lint/Gemfile.lock +0 -27
- data/sandbox/itsi_sandbox_rack_lint/config.ru +0 -3
- data/sandbox/itsi_sandbox_rails/.dockerignore +0 -48
- data/sandbox/itsi_sandbox_rails/.gitattributes +0 -9
- data/sandbox/itsi_sandbox_rails/.github/dependabot.yml +0 -12
- data/sandbox/itsi_sandbox_rails/.github/workflows/ci.yml +0 -90
- data/sandbox/itsi_sandbox_rails/.gitignore +0 -35
- data/sandbox/itsi_sandbox_rails/.rubocop.yml +0 -8
- data/sandbox/itsi_sandbox_rails/.ruby-version +0 -1
- data/sandbox/itsi_sandbox_rails/Dockerfile +0 -69
- data/sandbox/itsi_sandbox_rails/Gemfile +0 -66
- data/sandbox/itsi_sandbox_rails/Gemfile.lock +0 -429
- data/sandbox/itsi_sandbox_rails/README.md +0 -24
- data/sandbox/itsi_sandbox_rails/Rakefile +0 -6
- data/sandbox/itsi_sandbox_rails/app/assets/config/manifest.js +0 -4
- data/sandbox/itsi_sandbox_rails/app/assets/images/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/app/assets/stylesheets/application.css +0 -15
- data/sandbox/itsi_sandbox_rails/app/channels/application_cable/channel.rb +0 -4
- data/sandbox/itsi_sandbox_rails/app/channels/application_cable/connection.rb +0 -4
- data/sandbox/itsi_sandbox_rails/app/controllers/application_controller.rb +0 -4
- data/sandbox/itsi_sandbox_rails/app/controllers/concerns/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/app/controllers/home_controller.rb +0 -66
- data/sandbox/itsi_sandbox_rails/app/controllers/live_controller.rb +0 -40
- data/sandbox/itsi_sandbox_rails/app/controllers/uploads_controller.rb +0 -29
- data/sandbox/itsi_sandbox_rails/app/helpers/application_helper.rb +0 -2
- data/sandbox/itsi_sandbox_rails/app/javascript/application.js +0 -3
- data/sandbox/itsi_sandbox_rails/app/javascript/controllers/application.js +0 -9
- data/sandbox/itsi_sandbox_rails/app/javascript/controllers/hello_controller.js +0 -7
- data/sandbox/itsi_sandbox_rails/app/javascript/controllers/index.js +0 -4
- data/sandbox/itsi_sandbox_rails/app/jobs/application_job.rb +0 -7
- data/sandbox/itsi_sandbox_rails/app/mailers/application_mailer.rb +0 -4
- data/sandbox/itsi_sandbox_rails/app/models/application_record.rb +0 -3
- data/sandbox/itsi_sandbox_rails/app/models/concerns/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/app/models/post.rb +0 -2
- data/sandbox/itsi_sandbox_rails/app/views/layouts/application.html.erb +0 -23
- data/sandbox/itsi_sandbox_rails/app/views/layouts/mailer.html.erb +0 -13
- data/sandbox/itsi_sandbox_rails/app/views/layouts/mailer.text.erb +0 -1
- data/sandbox/itsi_sandbox_rails/app/views/pwa/manifest.json.erb +0 -22
- data/sandbox/itsi_sandbox_rails/app/views/pwa/service-worker.js +0 -26
- data/sandbox/itsi_sandbox_rails/bin/brakeman +0 -7
- data/sandbox/itsi_sandbox_rails/bin/bundle +0 -109
- data/sandbox/itsi_sandbox_rails/bin/docker-entrypoint +0 -13
- data/sandbox/itsi_sandbox_rails/bin/importmap +0 -4
- data/sandbox/itsi_sandbox_rails/bin/rails +0 -4
- data/sandbox/itsi_sandbox_rails/bin/rake +0 -4
- data/sandbox/itsi_sandbox_rails/bin/rubocop +0 -8
- data/sandbox/itsi_sandbox_rails/bin/setup +0 -37
- data/sandbox/itsi_sandbox_rails/config/application.rb +0 -27
- data/sandbox/itsi_sandbox_rails/config/boot.rb +0 -4
- data/sandbox/itsi_sandbox_rails/config/cable.yml +0 -10
- data/sandbox/itsi_sandbox_rails/config/credentials.yml.enc +0 -1
- data/sandbox/itsi_sandbox_rails/config/database.yml +0 -30
- data/sandbox/itsi_sandbox_rails/config/environment.rb +0 -5
- data/sandbox/itsi_sandbox_rails/config/environments/development.rb +0 -82
- data/sandbox/itsi_sandbox_rails/config/environments/production.rb +0 -106
- data/sandbox/itsi_sandbox_rails/config/environments/test.rb +0 -67
- data/sandbox/itsi_sandbox_rails/config/importmap.rb +0 -7
- data/sandbox/itsi_sandbox_rails/config/initializers/assets.rb +0 -12
- data/sandbox/itsi_sandbox_rails/config/initializers/content_security_policy.rb +0 -25
- data/sandbox/itsi_sandbox_rails/config/initializers/filter_parameter_logging.rb +0 -8
- data/sandbox/itsi_sandbox_rails/config/initializers/inflections.rb +0 -16
- data/sandbox/itsi_sandbox_rails/config/initializers/permissions_policy.rb +0 -13
- data/sandbox/itsi_sandbox_rails/config/locales/en.yml +0 -31
- data/sandbox/itsi_sandbox_rails/config/puma.rb +0 -34
- data/sandbox/itsi_sandbox_rails/config/routes.rb +0 -23
- data/sandbox/itsi_sandbox_rails/config/storage.yml +0 -34
- data/sandbox/itsi_sandbox_rails/config.ru +0 -6
- data/sandbox/itsi_sandbox_rails/db/migrate/20250301041554_create_posts.rb +0 -10
- data/sandbox/itsi_sandbox_rails/db/schema.rb +0 -23
- data/sandbox/itsi_sandbox_rails/db/seeds.rb +0 -9
- data/sandbox/itsi_sandbox_rails/lib/assets/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/lib/tasks/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/log/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/public/404.html +0 -67
- data/sandbox/itsi_sandbox_rails/public/406-unsupported-browser.html +0 -66
- data/sandbox/itsi_sandbox_rails/public/422.html +0 -67
- data/sandbox/itsi_sandbox_rails/public/500.html +0 -66
- data/sandbox/itsi_sandbox_rails/public/icon.png +0 -0
- data/sandbox/itsi_sandbox_rails/public/icon.svg +0 -3
- data/sandbox/itsi_sandbox_rails/public/robots.txt +0 -1
- data/sandbox/itsi_sandbox_rails/storage/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/application_system_test_case.rb +0 -5
- data/sandbox/itsi_sandbox_rails/test/channels/application_cable/connection_test.rb +0 -13
- data/sandbox/itsi_sandbox_rails/test/controllers/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/fixtures/files/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/helpers/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/integration/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/mailers/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/models/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/system/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/test/test_helper.rb +0 -15
- data/sandbox/itsi_sandbox_rails/tmp/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/tmp/pids/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/tmp/storage/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/vendor/.keep +0 -0
- data/sandbox/itsi_sandbox_rails/vendor/javascript/.keep +0 -0
- data/sandbox/itsi_sandbox_roda/Gemfile +0 -5
- data/sandbox/itsi_sandbox_roda/Gemfile.lock +0 -37
- data/sandbox/itsi_sandbox_roda/config.ru +0 -39
- data/sandbox/itsi_sinatra/Gemfile +0 -9
- data/sandbox/itsi_sinatra/Gemfile.lock +0 -81
- data/sandbox/itsi_sinatra/app.rb +0 -8
- data/sandbox/pebble/docker-compose.yml +0 -11
- data/sandbox/static_files/.env +0 -1
- data/sandbox/static_files/404.html +0 -25
- data/sandbox/static_files/_DSC0102.NEF.jpg +0 -0
- data/sandbox/static_files/about.html +0 -68
- data/sandbox/static_files/tiny.html +0 -1
- 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,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,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
|
Binary file
|
@@ -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 +0,0 @@
|
|
1
|
-
--require spec_helper
|