🎵Funicu-lì, Funicu-là!🚊🚊🚊
🎵Funicu-lì, Funicu-là!🚞🚞🚞
Funicular is a single-page application (SPA) framework powered by PicoRuby.wasm.
- Write client-side code in Ruby instead of JavaScript
- Seamless Rails integration
This repository consists of three relevant projects:
- PicoGem "picoruby-funicular" ... Core implementation
- CRubyGem "funicular" ... Rails integration
- Chrome extension "PicoRuby Debugger"
.
├── mrbgem.rake
├── mrblib/
└── test/.
├── bin/
├── exe/
├── funicular.gemspec
├── Gemfile
├── Gemfile.lock
├── lib/
├── minitest/
└── Rakefile.
└── debugger/The others are common resources.
User documentation is hosted on picoruby.org:
- Getting Started with Funicular — a standalone, no-Rails tutorial
- Funicular on Rails — installation, the asset pipeline, and a feature-by-feature tutorial plus reference (components, routing, forms, data fetching, stores, realtime, SSR, styling, debugging)
For contributors working on the gem itself, see docs/architecture.md.
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-funicularThe 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.
- CRubygem (Rails integration) test:
rake testin this repository - PicoGem Funicular test:
rake test:gems:picoruby[picoruby-funicular]in picoruby where mrbgems/picoruby-funicular exists as a submodule
Bug reports and pull requests are welcome on GitHub at https://github.com/picoruby/funicular.
Copyright © 2025- HASUMI Hitoshi. See MIT-LICENSE for further details.