npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

electrobun

v0.0.11

Published

Build ultra fast, tiny, and cross-platform desktop apps with Typescript.

Downloads

881

Readme

What is Electrobun?

Electrobun is in the very early stages. We currently only support development on arm macs, it has memory leaks, has no tests, it's not available in npm yet, and many core things are still missing.

Electrobun aims to be a complete solution-in-a-box for building, updating, and shipping ultra fast, tiny, and cross-platform desktop applications written in Typescript. Under the hood it uses bun to execute the main process and to bundle webview typescript, and has native bindings written in zig.

Visit Electrobun.dev to see api documentation, guides, and more.

Project Goals

  • Write typescript for the main process and webviews without having to think about it.
  • Isolation between main and webview processes with fast, typed, easy to implement RPC between them.
  • Small self-extracting app bundles ~12MB (when using system webview, most of this is the bun runtime)
  • Even smaller app updates as small as 4KB (using bsdiff it only downloads tiny patches between versions)
  • Provide everything you need in one tightly integrated workflow to start writing code in 5 minutes and distribute in 10.

Architecture

Read about how Electrobun is designed, and why, in our architecture docs.

Roadmap

See the detailed detailed Roadmap.

High level roadmap

| | Milestones | Description | | :-- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- | | ✅ | Core Architecture | Ship a working proof of concept with most of the core architecture wired up | | ✅ | Packaging and signing | Packaging and code signing for MacOS | | ✅ | Shipping updates | Integrated auto-updator | | ✅ | Webview Tag | Cross browser electrobun implementation of the tag that electron has, for isolated nested webviews | | ✅ | Port co(lab) | Harden implementation and enough electron parity to migrate https://colab.sh from Electron to Electrobun | | | Custom Web Runtime | Optionally use a cross-platform web runtime (Chromium) instead of the system's native webview | | | Intel Mac Builds | build on and distribute to intel macs | | | API Parity | Accelerate development of Electrobun apis and native integrations to enable apps to migrate from Electron and Tauri | | | Windows support | build for and distribute to Windows |

Contributing

On the road to a stable 1.0.0 I'm probably going to just be pushing directly to main a lot.

As we get closer to 1.0.0 I'll probably make guidelines for PRs and stuff. In the meantime if you find this project and want to contribute code it's probably best to create an issue first or ping me on twitter or discord to discuss when, what, and how is best to do that.

Ways to get involved at this early stage:

  • Follow us on X for updates @BlackboardTech
  • Join the conversation on Discord
  • Create and participate in Github issues and discussions

Building

run bun run install-zig to install the right version of zig to vendors/zig

bun dev:example and bun dev:example:canary will compile everything in electrobun in either dev or release modes and then compile the example app in either dev or canary modes and run it.

Note: For now bun build:release will build all the electrobun components in release mode and copy them to the /dist folder. Setting up a more complex release process is a todo, since those binaries should ideally stay in sync with the bun and browser typescript apis.

More work is needed to separate out "build everything in release mode for testing with the example app" vs. "build everything in release mode and prepare for distribution"