Itsi – the teensy‑weensy Ruby Rack server, static asset server, reverse proxy, API gateway, and fiber scheduler!
See the code
The Serious Web Server, for Serious People
Itsi is a feature-packed, high performance web and application server, with first-class support for Ruby applications. It's a compliant Rack server. It’s also a well-equipped reverse proxy, API gateway, and static file server, controlled by an intuitive and elegant configuration API and DSL.
Itsi is motivated by the belief that:
It should be easy to share your application on the internet with confidence, without a need for complex configuration or multiple layers of tools.
Just your application code and Itsi working together, inside a single process, to proudly serve your best work on the world wide web.
For the best introduction to Itsi, you should take a look at the Itsi documentation website.
Make sure you have Ruby installed! If not, look here: https://www.ruby-lang.org/en/documentation/installation/
On Linux? You'll need at least
build-essentialandlibclang-devinstalled to build Itsi on Linux if RubyGems falls back to a source build. E.g.
apt-get install build-essential libclang-dev
Precompiled native gems are published for common macOS and Linux targets on x86_64 and ARM64. On those platforms most installs can skip the local Rust toolchain entirely, while source gems remain available as a fallback.
Then, install Itsi using gem:
gem install itsi
Want to serve a Ruby app? Go to a directory containing a config.ru file and run:
itsi
Want to serve static files? Go to a directory containing static files and run:
itsi static
Want to run and configure a reverse proxy, API Gateway, static file server, gRPC server, inline endpoints or any combination of these? You'll need to learn a bit more about Itsi's configuration API and DSL.
Run:
itsi init
to create a new Itsi.rb configuration file and start tweaking.
Need help with the Itsi CLI?
itsi --help
to see some of the essential options.
Prefer learning by doing? Make sure you have ruby-lsp installed, and then let the LSP show
you the right set of configuration options available inside Itsi.rb, from right inside your editor.
Or just go straight to the comprehensive documentation site to see it all!
Docs:
Source Code:
rake test (Run the full Itsi test-suite)rake compile (Compile Itsi - Scheduler and Server)rake build (Build all itsi gems, itsi, itsi-server, itsi-scheduler)You can also run gem-specific variants of the above. E.g.
rake server:test or rake scheduler:testrake server:compile or rake scheduler:compilerake server:build or rake scheduler:buildDeveloper Certificate of Origin
By submitting a pull-request you certify that:
Rust
65.9%
Ruby
31.8%
HTML
2.0%
Itsi – the teensy‑weensy Ruby Rack server, static asset server, reverse proxy, API gateway, and fiber scheduler!
See the code
The Serious Web Server, for Serious People
Itsi is a feature-packed, high performance web and application server, with first-class support for Ruby applications. It's a compliant Rack server. It’s also a well-equipped reverse proxy, API gateway, and static file server, controlled by an intuitive and elegant configuration API and DSL.
Itsi is motivated by the belief that:
It should be easy to share your application on the internet with confidence, without a need for complex configuration or multiple layers of tools.
Just your application code and Itsi working together, inside a single process, to proudly serve your best work on the world wide web.
For the best introduction to Itsi, you should take a look at the Itsi documentation website.
Make sure you have Ruby installed! If not, look here: https://www.ruby-lang.org/en/documentation/installation/
On Linux? You'll need at least
build-essentialandlibclang-devinstalled to build Itsi on Linux if RubyGems falls back to a source build. E.g.
apt-get install build-essential libclang-dev
Precompiled native gems are published for common macOS and Linux targets on x86_64 and ARM64. On those platforms most installs can skip the local Rust toolchain entirely, while source gems remain available as a fallback.
Then, install Itsi using gem:
gem install itsi
Want to serve a Ruby app? Go to a directory containing a config.ru file and run:
itsi
Want to serve static files? Go to a directory containing static files and run:
itsi static
Want to run and configure a reverse proxy, API Gateway, static file server, gRPC server, inline endpoints or any combination of these? You'll need to learn a bit more about Itsi's configuration API and DSL.
Run:
itsi init
to create a new Itsi.rb configuration file and start tweaking.
Need help with the Itsi CLI?
itsi --help
to see some of the essential options.
Prefer learning by doing? Make sure you have ruby-lsp installed, and then let the LSP show
you the right set of configuration options available inside Itsi.rb, from right inside your editor.
Or just go straight to the comprehensive documentation site to see it all!
Docs:
Source Code:
rake test (Run the full Itsi test-suite)rake compile (Compile Itsi - Scheduler and Server)rake build (Build all itsi gems, itsi, itsi-server, itsi-scheduler)You can also run gem-specific variants of the above. E.g.
rake server:test or rake scheduler:testrake server:compile or rake scheduler:compilerake server:build or rake scheduler:buildDeveloper Certificate of Origin
By submitting a pull-request you certify that:
Rust
65.9%
Ruby
31.8%
HTML
2.0%