mini_racer VS execjs

Compare mini_racer vs execjs and see what are their differences.

SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
mini_racer execjs
4 4
583 518
0.7% 0.6%
7.2 6.5
23 days ago 3 months ago
JavaScript Ruby
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

mini_racer

Posts with mentions or reviews of mini_racer. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-03.
  • Ask HN: What side projects landed you a job?
    62 projects | news.ycombinator.com | 3 Dec 2023
    Some years ago I was on a shitty job - not technically, but the company turned out to be inhumane - at a Ruby shop, and on the side I was toying with mini_racer and I just upgraded to some macOS beta where it failed to build. A shitty +1-1 hack† for a compiler flag later and it was back flying.

    A month later I received a cold email from a CTO to chat a bit about that PR, turns out they were using mini_racer heavily and forked it for their own purpose, and also created PyMiniRacer for the Python side of things. Next thing I know I got hired. Two years later the company got acquired.

    Of course conditionally adding a compiler flag wasn't what got me hired per se, it only got my profile noticed. Probably side projects such as porting go by example to Ruby by implementing a ~1:1 CSP channel API[1], an Electron desktop client for Mattermost basically on a dare[2], ex mode for the Atom editor so that I could have that frackin' `:w`[3], leveraging Blocks to bolt on object-oriented-ness onto C because "closures are a poor man's object"[4], or reverse-engineering the Xbox One USB gamepad and writing a kext to turn it into a HID device on macOS from scratch on a lonely 7+h train ride with passengers judgementally staring at me sideways[4] probably contributed to it a bit.

    My takeaway: luck is when preparation meets opportunity; but don't to side projects to get hired, because if you don't get hired then that time is lost. Rather, of all things, scratch your itch, have fun, embrace whatever quirkiness you fancy; no one can take that away from you.

    [0]: https://github.com/rubyjs/mini_racer/commit/2086db1bbf2b5de4...

    [1]: https://github.com/lloeki/normandy

    [2]: https://github.com/lloeki/matterfront

    [3]: https://github.com/lloeki/ex-mode

    [4]: https://github.com/lloeki/cblocks-clobj/blob/master/main.c

    [5]: https://github.com/lloeki/xbox_one_controller

  • YouTube-dl has a JavaScript interpreter written in 870 lines of Python
    19 projects | news.ycombinator.com | 10 Sep 2022
    Cue libv8-node+mini_racer from which PyMiniRacer was born. It is non-trivial but not as hard as one might think.

    The most painful part is the libv8 build system and Google tooling, which makes it an absolute PITA for libv8 consumers that are not Chrome.

    This is why the libv8 gem was atrocious to keep up to date and to build for several platforms, and why libv8-node was born, because the node build system and source distribution are actually sane.

    Disclaimer: worked at Sqreen, now maintainer of libv8-node and collaborator of mini_racer

    https://github.com/sqreen/PyMiniRacer

    https://github.com/rubyjs/mini_racer

    https://github.com/rubyjs/libv8-node

  • Rendering markdown with Markdoc in Rails
    7 projects | dev.to | 13 Jul 2022
    Eventually, we’ll want to call this JavaScript from a Rails controller using ExecJS or MiniRacer or some similar tool. None of the Ruby-to-JavaScript gems I found were sophisticated enough to know how to load npm modules with common.js or ES module syntax, so my solution is to just build the JavaScript with a watcher and have that run as part of bin/dev.
  • Anyone having issues with M1Pro?
    1 project | /r/rails | 11 Nov 2021
    https://github.com/rubyjs/mini_racer/issues/190 has some info an then this PR: https://github.com/rubyjs/mini_racer/pull/210 that has been merged. Hope that all helps!

execjs

Posts with mentions or reviews of execjs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-07-13.
  • What is the best way to deploy a rails eCommerce app
    1 project | /r/rails | 4 Feb 2023
    So it happened again. "ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime." Should we be installing this as a gem? I would have thought that this would be in your build pack. It's a standard Rails 7.0.4, Ruby 3.2.0 app, with only three added gems over the defaults: "haml-rails", 'bootstrap', 'acts-as-taggable-on' #20 1.847 rails aborted! 20 1.847 ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/execjs-2.8.1/lib/execjs/runtimes.rb:58:in `autodetect' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/execjs-2.8.1/lib/execjs.rb:5:in `' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/execjs-2.8.1/lib/execjs.rb:4:in `' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/autoprefixer-rails-10.4.7.0/lib/autoprefixer-rails/processor.rb:4:in `' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/autoprefixer-rails-10.4.7.0/lib/autoprefixer-rails.rb:39:in `require_relative' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/autoprefixer-rails-10.4.7.0/lib/autoprefixer-rails.rb:39:in `' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootstrap-5.2.3/lib/bootstrap/engine.rb:3:in `' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootstrap-5.2.3/lib/bootstrap.rb:61:in `register_rails_engine' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootstrap-5.2.3/lib/bootstrap.rb:11:in `load!' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootstrap-5.2.3/lib/bootstrap.rb:75:in `' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 /usr/local/bundle/gems/bundler-2.4.1/lib/bundler/runtime.rb:60:in `block (2 levels) in require' 20 1.848 /usr/local/bundle/gems/bundler-2.4.1/lib/bundler/runtime.rb:55:in `each' 20 1.848 /usr/local/bundle/gems/bundler-2.4.1/lib/bundler/runtime.rb:55:in `block in require' 20 1.848 /usr/local/bundle/gems/bundler-2.4.1/lib/bundler/runtime.rb:44:in `each' 20 1.848 /usr/local/bundle/gems/bundler-2.4.1/lib/bundler/runtime.rb:44:in `require' 20 1.848 /usr/local/bundle/gems/bundler-2.4.1/lib/bundler.rb:195:in `require' 20 1.848 /app/config/application.rb:7:in `' 20 1.848 /app/Rakefile:4:in `require_relative' 20 1.848 /app/Rakefile:4:in `' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/commands/rake/rake_command.rb:20:in `block in perform' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/commands/rake/rake_command.rb:18:in `perform' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/command.rb:51:in `invoke' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/commands.rb:18:in `' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 /app/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' 20 1.848 bin/rails:5:in `' 20 1.848 (See full trace by running task with --trace) Error failed to fetch an image or build from source: error building: executor failed running [/bin/bash -o pipefail -c ${BUILD_COMMAND}]: exit code: 1
  • Error when deploying Rails application to Fly.io
    1 project | /r/rails | 27 Nov 2022
    [stage-3 7/7] RUN bin/rails fly:build: 20 1.849 rails aborted! 20 1.849 ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
  • Rendering markdown with Markdoc in Rails
    7 projects | dev.to | 13 Jul 2022
    Eventually, we’ll want to call this JavaScript from a Rails controller using ExecJS or MiniRacer or some similar tool. None of the Ruby-to-JavaScript gems I found were sophisticated enough to know how to load npm modules with common.js or ES module syntax, so my solution is to just build the JavaScript with a watcher and have that run as part of bin/dev.
  • centos7 nodejs-6.xx yum install fail
    2 projects | /r/ositotech_chiken | 7 Feb 2022
    「Error: The application encountered the following error: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)」

What are some alternatives?

When comparing mini_racer and execjs you can also consider the following projects:

libv8-node - Package libv8 from Node

node-build

quickjs - Thin Python wrapper of https://bellard.org/quickjs/

eleventy 🕚⚡️ - A simpler site generator. Transforms a directory of templates (of varying types) into HTML.

PyMiniRacer - PyMiniRacer is a V8 bridge in Python.

markdoc-rails - Example of rendering markdown using Markdoc with Ruby on Rails

pyduktape - Embed the Duktape JS interpreter in Python

lit - Lit is a simple library for building fast, lightweight web components.

markdoc - A powerful, flexible, Markdown-based authoring framework.

tube-get - A tube-site downloader