Embedding SpiderMonkey into a project is no easy feat, but we know there are a number of embedders out there. We are curious where and how you are using SpiderMonkey (and also if you read this discourse/mailing-list). Hopefully if we know more, we can break your use-cases less often .
A few quick questions
- What is your Project? (Or Company) (Or just āprivateā)
- What is your main version of SpiderMonkey?
- What version are you currently rebasing towards?
- Why SpiderMonkey?
- Pick one complaint about embedding. (eg. not enough docs; Rust requirements)
EDIT: Turning this into a wiki post.
Project | Main Version | Next Version | Why |
---|---|---|---|
Mozilla Firefox / Gecko | central | central | An independent platform lets us influence the shape of the Web. |
GJS, GNOMEās JavaScript engine | ESR 78 | ESR next | In 2008 Havoc Pennington published a blog post that was influential in the GNOME community, about an architecture of C/C++ platform libraries plus a scripting language, in which he proposed SpiderMonkey as the scripting language. At the time, Node.js didnāt exist so v8 wouldnāt have been as obvious of a choice as it might be now, and the embedding API of JavaScriptCore has always been pretty minimal. Mozilla is also philosophically aligned with GNOME around openness and software freedom. |
0 A.D., a FLOSS video game | ESR 78 | ESR next | The adoption was IIRC decided around 2007. The question was which scripting language to accompany our C++ backend. JS was chosen over Lua on grounds, I could look back for the exact reasons, but basically it worked and did everything they wanted back then. It proved quite useful having such an āentry-levelā/familiar language, and I doubt the 0 A.D. modding scene would be quite so lively without it. |
CouchDB | ESR 68 | SM 86 | |
MongoDB | ESR 60 | ? | https://engineering.mongodb.com/post/code-generating-away-the-boilerplate-in-our-migration-back-to-spidermonkey |
Bloombergās JS runtime platform (partially) | SM 5 fork | SM 13 | We started using SM in early 2001, and built a server-side JS platform around it in 2005. The choice came down to JS or Lua and we chose JS. There was no other viable option than SM and we had years of embedding experience at that point. |