Funicular

🎡Funicu-lì, Funicu-là!🚊🚊🚊

🎡Funicu-lì, Funicu-là!🚞🚞🚞

Funicular is a single-page application (SPA) framework powered by PicoRuby.wasm.

Features

  • Write client-side code in Ruby instead of JavaScript
  • Seamless Rails integration

Combined Gem

This repository consists of three relevant projects:

  • PicoGem "picoruby-funicular" ... Core implementation
  • CRubyGem "funicular" ... Rails integration
  • Chrome extension "PicoRuby Debugger"

PicoGem "picoruby-funicular"

.
β”œβ”€β”€ mrbgem.rake
β”œβ”€β”€ mrblib/
└── test/

CRubyGem "funicular"

.
β”œβ”€β”€ bin/
β”œβ”€β”€ exe/
β”œβ”€β”€ funicular.gemspec
β”œβ”€β”€ Gemfile
β”œβ”€β”€ Gemfile.lock
β”œβ”€β”€ lib/
β”œβ”€β”€ minitest/
└── Rakefile

Chrome extention "PicoRuby.wasm debugger"

.
└── debugger/

The others are common resources.

Documentation

You may want to see Tic-Tac-Toe tutorial first: https://picoruby.org/funicular

Then, dig docs/.

Development

This repository is a submodule of picoruby/picoruby. Do not check it out standalone. Instead, clone the parent repository and work from there:

git clone --recurse-submodules https://github.com/picoruby/picoruby.git
cd picoruby/mrbgems/picoruby-funicular

The CRubyGem side (lib/, funicular.gemspec, etc.) can be developed and tested independently inside that directory, but rake copy_wasm β€” which vendorsthe PicoRuby.wasm and picorbc wasm artifacts into the gem β€” relies on sibling directories within the picoruby repository (mrbgems/picoruby-wasm/npm/). Running it from a standalone checkout will fail.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/picoruby/funicular.

License

Copyright Β© 2025- HASUMI Hitoshi. See MIT-LICENSE for further details.