blueboat
bun
Our great sponsors
blueboat | bun | |
---|---|---|
18 | 275 | |
1,918 | 69,100 | |
- | 2.1% | |
0.0 | 10.0 | |
about 1 year ago | 3 days ago | |
Rust | Zig | |
Apache License 2.0 | - |
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.
blueboat
-
What's with All the Runtimes for JavaScript?
Right now it is an exciting time for JavaScript. We just got a new shiny fast runtime Bun, with the last new kid Deno being released only 4 years ago, and we have edge computing/serverless runtimes like Cloudflare worker and Blueboat. With all these hypes for the JavaScript community, I could not help but ask, how come only JavaScript gets all these fancy new runtimes? Why don’t we hear these more often in other languages?
-
Show HN: Distributed SQLite on FoundationDB
Hello HN! I'm building mvsqlite, a distributed variant of SQLite with MVCC transactions, that runs on FoundationDB. It is a drop-in replacement that just needs an `LD_PRELOAD` for existing applications using SQLite.
I made this because [Blueboat](https://github.com/losfair/blueboat) needs a native SQL interface to persistent data. Apparently, just providing a transactional key-value store isn’t enough - it is more easy and efficient to build complex business logic on an SQL database, and it seems necessary to bring a self-hostable distributed SQL DB onto the platform. Since FoundationDB is Blueboat’s only stateful external dependency, I decided to build the SQL capabilities on top of it.
At its core, mvsqlite’s storage engine, mvstore, is a multi-version page store built on FoundationDB. It addresses the duration and size limits (5 secs, 10 MB) of FDB transactions, by handling multi-versioning itself. Pages are fully versioned, so they are always snapshot-readable in the future. An SQLite transaction fetches the read version during `BEGIN TRANSACTION`, and this version is used as the per-page range scan upper bound in future page read requests.
For writes, pages are first written to a content-addressed store keyed by the page's hash. At commit, hashes of each written page in the SQLite transaction is written to the page index in a single FDB transaction to preserve atomicity. With 8K pages and ~60B per key-value entry in the page index, each SQLite transaction can be as large as 1.3 GB (compared to FDB's native txn size limit of 10 MB).
mvsqlite is not yet "production-ready", since it hasn’t received enough testing, and I may still have a few changes to make to the on-disk format. But please ask here if you have any questions!
-
Show HN: Blueboat is an all-in-one, multi-tenant serverless JavaScript runtime
This sounds quite a bit like Cloudflare Workers, and they have a comparison page - https://github.com/losfair/blueboat/wiki/Comparison-with-Clo....
-
Are V8 isolates the future of computing?
Blueboat may be what you’re looking for
> If one writes Go or Rust, there are much better ways to run them than targeting WASM
wasm has its place, especially for contained workloads that can be wrapped in its strict capability boundaries (think, file-encoding jobs that shouldn't access anything else but said files: https://news.ycombinator.com/item?id=29112713).
> Containers are still the defacto standard.
wasmedge [0], atmo [1], krustlet [2], blueboat [3] and numerous other projects are turning up the heat [4]!
[0] https://github.com/WasmEdge/WasmEdge
[1] https://github.com/suborbital/atmo
[2] https://github.com/krustlet/krustlet
- Blueboat, an open-source alternative to Cloudflare Workers
-
Deno Deploy Beta 2
https://github.com/losfair/rusty-workers
They're not perfectly isolated to a high security standard such that you could deploy your own v8 workers SaaS. And they do have quirks and development woes. I haven't tested in production but if it's just your trusted apps wanting to exceed the cloudflare workers 30 scripts limit then both are wonderfully powerful solutions to put behind a https proxy.
bun
-
I have created a small anti-depression script
Install Node.js (or Bun, or Deno, or whatever JS runtime you prefer) if it's not there
-
JSR: The JavaScript Registry
I think maybe I was unclear. I'm talking about writing libraries that abstract across these differences and provide a single API, as sibling describes. I already know it's possible. I made a simple filesystem abstraction here[0] and a very simple HTTP library that uses it here[1]. They both work in Node/Deno and the browser. Unfortunately I ran into issues with Bun's slice implementation[2]. But I suspect there's a much better way of detecting and using the different backends.
[0]: https://github.com/waygate-io/fs-js
-
SelectorHound: The tool for Sniffing out CSS Selectors
For, for more speed (requires installing bun first):
-
OpenCommit: feature-rich CLI to generate meaningful git commit messages now supports local models via Ollama 🤯🔫
OpenCommit is a CLI to generate commit messages, you can try it right now by running npx opencommit in any repo you have changed code in. I suggest you use bunx opencommit (install Bun) or install OpenCommit globally npm i -g opencommit and then run oco which is a shorthand.
-
Build a Vite 5 backend integration with Flask
Once you build a simple Vite backend integration, try not to complicate Vite's configuration unless you absolutely must. Vite has become one of the most popular bundlers in the frontend space, but it wasn't the first and it certainly won't be the last. In my 7 years of building for the web, I've used Grunt, Gulp, Webpack, esbuild, and Parcel. Snowpack and Rome came-and-went before I ever had a chance to try them. Bun is vying for the spot of The New Hotness in bundling, Rome has been forked into Biome, and Vercel is building a Rust-based Webpack alternative.
-
HTML Streaming and DOM Diffing Algorithm
And in the response use a ReadableStream. This would be the example with Bun:
-
Ask HN: Who is hiring? (February 2024)
Bun (YC S19) | https://bun.sh | San Francisco | ONSITE | Full-time
Bun is an incredibly fast JavaScript runtime, package manager, test runner, and bundler. Our 2024 goal is to replace Node.js as the default server-side JavaScript runtime. We launched Bun 1.0 back in September: https://www.youtube.com/watch?v=BsnCpESUEqM, and it's been a really exciting 6-ish months seeing developers use Bun at companies like X (Twitter), Midjourney and Brex.
Today we have over 2,000 issues open in our GitHub repo https://github.com/oven-sh/bun/issues, and while we love seeing people use Bun, it's clear that we need to grow the team to help make Bun more reliable and implement missing features blocking companies from switching to Bun.
We are hiring systems engineers in San Francisco to help make Bun more reliable and implement new runtime APIs and services. Bun is written in a mix of Zig and C++, but experience with Zig is not required (People with a C/C++ background tend to pick up Zig quickly). Working on Bun often involves reading WebKit/JavaScriptCore source code, Zig standard library source code, Darwin XNU source code, and sometimes Linux kernel source code. We are a well-funded early-stage startup (9 people currently). Our office is in the financial district in San Francisco
Please apply here: https://apply.workable.com/oven/j/A7A1388873/
-
The Bun Shell
doesn't work with Windows:
Great point! According to https://github.com/oven-sh/bun/blob/b433beb016470b87850f3c01..., Bun Shell took inspiration from zx[0], dax[1] and bnx[2]
[0]: https://github.com/google/zx
I’m using zx and the API seems very similar to what is described in the post.
Which bun also acknowledges here:
https://github.com/oven-sh/bun/blob/main/docs/runtime/shell....
I suppose one significant difference is that bun reimplements shell built-ins. I believe that zx simply executes bash or powershell and fails if neither is available.
What are some alternatives?
vite - Next generation frontend tooling. It's fast!
GORM - The fantastic ORM library for Golang, aims to be developer friendly
nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
fastify - Fast and low overhead web framework, for Node.js
go-pg - Golang ORM with focus on PostgreSQL features and performance
deno - A modern runtime for JavaScript and TypeScript.
just - the only javascript runtime to hit no.1 on techempower :fire:
Vue.js - This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
Svelte - Cybernetically enhanced web apps
pgx - PostgreSQL driver and toolkit for Go
Next.js - The React Framework
µWebSockets - Simple, secure & standards compliant web server for the most demanding of applications