moon
napi-rs
Our great sponsors
moon | napi-rs | |
---|---|---|
6 | 35 | |
2,584 | 5,453 | |
3.2% | 4.3% | |
9.7 | 9.6 | |
about 24 hours ago | 3 days ago | |
Rust | Rust | |
MIT License | GNU General Public License v3.0 or later |
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.
moon
-
Launch HN: Moonrepo (YC W23) – Open-source build system
(for context - I'm not interested in first class node support)
This seems pretty cool. I particularly like how 'gradual' it seems to be relative to things like Bazel, i.e. you can take some shell scripts and migrate things over. I did have a play and hit an initial problem around project caching I think, which I raised at [0].
One comment, from the paranoid point of view of someone who has built distributed caching build systems before is that your caching is very pessimistic! I understand why you hash outputs by default (as well as inputs), but I think that will massively reduce hit rate a lot of the time when it may not be necessary? I raised [1].
As an aside, I do wish build systems moved beyond the 'file-based' approach to inputs/outputs to something more abstract/extensible. For example, when creating docker images I'd prefer to define an extension that informs the build system of the docker image hash, rather than create marker files on disk (the same is true of initiating rebuilds on environment variable change, which I see moon has some limited support for). It just feels like language agnostic build systems saw the file-based nature of Make and said 'good enough for us' (honorable mention to Shake, which is an exception [2]).
- A build system and repo management tool for the web ecosystem, written in Rust
-
Building a full-stack TypeScript application with Turborepo
There are many tools like Lerna, Nx, Turborepo, Moon, Rush, and Bazel, to name a few. Today, we'll be using Turborepo, as it's lightweight, flexible, and easy to use.
-
Lerna reborn - What's new in v6?
You should give moon a try: https://moonrepo.dev/
- Moon - A build system for the javascript ecosystem, written in rust.
napi-rs
- Napi: Build compiled Node.js add-ons in Rust
- Napi.rs, framework for building pre-compiled Node.js addons in Rust
-
Electrons Are Fast, So Can Be Electron – How to Optimize Electron App Performance
Napi-rs
- 🚀 GoRules Zen Engine: Rules Engine for Node.js
-
What's the "modern" way of creating a native addon for Node.js?
Thanks! This seems pretty official. I do really like what I saw from https://napi.rs/ where you just throw a "#[napi]" macro on and it works. Do you know if there's a Node API equivalent C/C++ workflow or tool that does something similar? I think the https://github.com/nodejs/webidl-napi is kinda what I'm looking for but it's archived.
- 🚀 GoRules Zen Engine: Cross-platform rules engine written in Rust
-
Equivalent to wasm-pack for nodejs C FFI?
Does it need to be Neon? From what I've read, there's something about its design that allows napi-rs to achieve better performance in some situations.
-
Node & Rust: Friendship Forever. The NAPI-rs Way.
NAPI-RS is a framework for building pre-compiled Node.js addons in Rust.
-
Write SDK “base” in Rust, wrap in other languages?
For example, they list PyO3 for Python (see also maturin for packaging), NAPI-RS for Node.js, and Rutie for Ruby.
- NAPI-RS 3.0 RFC is ready; come and join the discussion
What are some alternatives?
hash - 🚀 The open-source, self-building database. From @hashintel
canvas - High performance skia binding to Node.js. Zero system dependencies and pure npm packages without any postinstall scripts nor node-gyp.
orogene - Makes `node_modules/` happen. Fast. No fuss.
wasmer-go - 🐹🕸️ WebAssembly runtime for Go
nx - Smart Monorepos · Fast CI
node-canvas - Node canvas is a Cairo backed Canvas implementation for NodeJS.
mandelbrot - Microbenchmark testing Python, Numba, Mojo, Dart, C/gcc, Rust, Go, JavaScript, C#, Java, Kotlin, Pascal, Ruby, Haskell performance in Mandelbrot set generation
benchmark - MikroORM vs TypeORM benchmark of CRUD operations on 10k entities
hackerman - Cargo hack manager
PyO3 - Rust bindings for the Python interpreter
turbo - Incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust – including Turbopack and Turborepo.
typescript-runtime-type-benchmarks - 📊 Benchmark Comparison of Packages with Runtime Validation and TypeScript Support