https://github.com/mrubyedge/uzumibi
Uzumibi allows Ruby applications run on edge function services
https://github.com/mrubyedge/uzumibi
Last synced: about 1 month ago
JSON representation
Uzumibi allows Ruby applications run on edge function services
- Host: GitHub
- URL: https://github.com/mrubyedge/uzumibi
- Owner: mrubyedge
- License: bsd-3-clause
- Created: 2025-12-07T05:54:58.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-01-23T11:50:42.000Z (about 1 month ago)
- Last Synced: 2026-01-24T03:53:56.259Z (about 1 month ago)
- Language: Rust
- Size: 247 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Uzumibi
==========
Uzumibi is a lightweight web application framework for embedding MRuby into edge computing platforms like Cloudflare Workers, Fastly Compute@Edge, Spin and so on. It allows developers to write serverless applications using Ruby, leveraging the power of MRuby for efficient execution in constrained environments.
Uzumibi uses a specialized mruby implementation [mruby/edge](https://github.com/mrubyedge/mrubyedge), which is optimized for edge computing scenarios - WebAssembly environments with limited resources.
### tl;dr
Ruby code example for Uzumibi:
```ruby
class App < Uzumibi::Router
get "/" do |req, res|
res.status_code = 200
res.headers = {
"content-type" => "text/plain",
"x-powered-by" => "#{RUBY_ENGINE} #{RUBY_VERSION}"
}
res.body = "It works!\nVisit /greet/to/:name to get greeted.\n"
res
end
get "/description" do |req, res|
res.status_code = 200
res.headers = {
"content-type" => "text/plain",
}
res.body =
"\"Uzumibi\" is a Japanese term that refers\n" +
"to live embers buried under a layer of ash\n" +
"to keep the fire from going out.\n"
res
end
get "/greet/to/:name" do |req, res|
res.status_code = 200
res.headers = {
"content-type" => "text/plain",
"x-powered-by" => "#{RUBY_ENGINE} #{RUBY_VERSION}"
}
res.body = "Hello, #{req.params[:name]}!!\n"
res
end
get "/hello/:name" do |req, res|
res.status_code = 302
res.headers = {
"location" => "/greet/to/#{req.params[:name]}",
"content-type" => "text/plain",
}
res.body = "Moved\n"
res
end
end
$APP = App.new
```
...that runs on various edge platforms!!
Crates and projects
-----------------
- [**uzumibi-cli**](./uzumibi-cli/) - A command-line interface tool to generate Uzumibi application scaffolds to various edge platforms.
- 
- [**uzumibi-gem**](./uzumibi-gem/) - The mruby/edge gem that provides the core Uzumibi framework functionality.
- 
- [**uzumibi-art-router**](./uzumibi-art-router/) - A lightweight router library for Uzumibi, providing routing capabilities for handling HTTP requests.
- 
### Spike codes
- [**uzumibi-on-cloudflare-spike**](./uzumibi-on-cloudflare-spike/) - An Uzumibi application scaffold for Cloudflare Workers (using Wasm with some JavaScript).
- [**uzumibi-on-cloudrun-spike**](./uzumibi-on-cloudrun-spike/) - An Uzumibi application scaffold for Google Cloud Run. Experimental.
- [**uzumibi-on-fastly-spike**](./uzumibi-on-fastly-spike/) - An Uzumibi application scaffold for Fastly Compute@Edge.
- [**uzumibi-on-spin-spike**](./uzumibi-on-spin-spike/) - An Uzumibi application scaffold for Spin using Fermyon Cloud.
### ToDos
- Support of wasmCloud
## How to pronounce "Uzumibi"
Uzumibi(うずみび) is pronounced as /`oo-zóo-mi-bì`/, which sounds natural when you pronounce in relaxed oo - `ʊ`