So excited to share Pear Runtime with the world. So much amazing work by the team. Later today it goes out in a swarm update to @jowo_io as well
We've open sourced roughly 100 repos today containing really cool innovation we've been working on the last year.
Among these: https://github.com/holepunchto/pear - the runtime. This is an insane piece of engineering led by @marc_david. Run apps from the swarm, live anywhere in the world - unstoppable.
This thing is nuts. It's built using itself 🤯. It supports over the air updates over the swarm (3/5 multisig signed by team). It supports native-addons, live booting apps, terminal apps / ui apps - the works.
@keet_io runs on this. Including @keet_io mobile. In the next days and weeks we'll be releasing more and more tooling (our own tooling infact) that allows you to easily port any runtime app to mobile. It's pretty nuts.
Pear Runtime runs on a new JavaScript runtime we've been developing. It's called Bare.
Bare is incredible. It's the Javascript Runtime I've wanted my entire life. It's embed-first, which means it runs EVERYWHERE. It runs on mobile, it runs on desktop, it runs on embedded devices.
It does this by just focusing on one thing and one thing only. Delivering the best possible module system in the world. It supports ESM, CJS (both ways btw!!) and native addons as a 1st class citizen.
It comes with no stdlib, but with small modules on our Github or whatever the community makes to make apps focus on being apps. This is powerful as it means you can pick and choose exactly what you need for your environment.
It runs on a js abstraction we've made called libjs.
Libjs abstracts away the full js engine (ie no direct binding to v8 or any other engine) at close to no cost. This makes it run on close to any JS engine. We have bindings for v8, jsc, quickjs already.
Native bindings are written the same way. We utilise a ton of tricks to make native bindings have close to no performance penalty when talking to JS. Oh and it supports n-api from node also meaning most nodejs native libs work out of the box.
All of this is packaged into a single thing, 🍐
Get started now with
npm install -g pear
Or simply get it through Keet when it updated over the swarm later today 😎