ruby_runtime 0.0.6
ruby_runtime: ^0.0.6 copied to clipboard
Embed Ruflet's mruby runtime in Flutter apps for Android, iOS, macOS, and Linux.
0.0.6 #
- Update embedded Ruflet pages from client resize events so
page.widthandpage.heightreflect the live viewport, and exposepage.on_resize. - Add Linux desktop support: a GTK plugin (
linux/) embeds mruby exactly like the macOS plugin and implements the fullruby_runtimemethod channel (eval,runFile,reset,startFileServer,stopFileServer,isFileServerRunning,serverPort,lastFileServerError). This removes theMissingPluginException(No implementation found for method reset on channel ruby_runtime)seen when running self-contained apps on Linux. mruby is compiled from the sharedios/mruby_srcsources (same set used by Android).
0.0.5 #
- Bind any free port instead of failing on a busy one: the embedded server
now reports its actual bound port through a
server.portfile in the app work dir (seeded viaRUFLET_PORT_FILE), exposed to Dart with the newRubyRuntime.serverPort()method. The plugins no longer forceRUFLET_STRICT_PORT=1; strict binding remains available by setting that variable explicitly. - Seed
ENVthrough the Ruby prelude on all platforms: the embedded VM'sENVis isolated from the process environment, so the plugins'setenvcalls (RUFLET_PORT_FILE,RUFLET_PROD_STOP_FILE) never reached the server. - Add a pure-Ruby
Regexp/MatchDataengine: regex literals (mruby compiles them toRegexp.compile), named captures, lookahead, backreferences,i m xoptions, and fullStringintegration (match,match?,=~,scan,gsub/subwith backreference replacements,split,[],partition,index,start_with?,case/when). Validated by a test suite that also passes under CRuby. - Make the embedded runtime general-purpose: vendor the standard mruby extension gems (time, math, random, struct, set, data, enumerator, fiber, catch, method, dir, eval/binding, kernel-ext, class-ext, and all array/hash/string/numeric/object/range/symbol/proc/compar/enum/toplevel ext gems) into the Android, iOS, and macOS builds.
- Add pure-Ruby stdlib supplements: JSON generation (
JSON.generate,#to_json),StringIO,OpenStruct,Forwardable,Base64,SecureRandom.uuid/random_bytes,Time#strftime/#iso8601,SystemExit/exit/abort,pp, richerFileUtilsandFilehelpers. - Replace the deterministic LCG fallbacks:
Kernel.rand,SecureRandom, and control IDs now draw from mruby-random;Process.clock_gettimeuses the real clock;Kernel#sleepactually sleeps (viaIO.select). - Add a desktop test harness (
tools/embedded_vm_harness) that compiles the exact packaged mruby sources plus a standard-Ruby compatibility regression suite.
0.0.4 #
- Fix Android native builds to compile from the packaged mruby source tree.
0.0.3 #
- Fix native Android, iOS, and macOS includes to load the packaged embedded Ruflet runtime header from
shared/.
0.0.2 #
- Align Android plugin packaging and publish metadata for Ruflet self-contained builds.
- Document supported runtime behavior and developer usage more clearly.
- Prepare the package for pub.dev publication from the standalone
ruby_runtimepackage.
0.0.1 #
- Initial
ruby_runtimeFlutter plugin release. - Added embedded mruby execution APIs for Ruflet.
- Added embedded file server support used by self-contained Ruflet apps.
- Added Android, iOS, and macOS platform implementations.