libuv
v8.dev
Our great sponsors
libuv | v8.dev | |
---|---|---|
75 | 72 | |
23,241 | 914 | |
1.4% | 1.9% | |
9.0 | 7.4 | |
4 days ago | 8 days ago | |
C | JavaScript | |
MIT License | 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.
libuv
- Epoll: The API that powers the modern internet (2022)
-
APIs in Go with Huma 2.0
I wound up on a different team with pre-existing Python code so temporarily shelved my use of Go for a bit, and we used Sanic (an async Python framework built on top of the excellent uvloop & libuv that also powers Node.js) to build some APIs for live channel management & operations. We hand-wrote our OpenAPI and used it to generate documentation and a CLI, which was an improvement over what was there (or not) before. Other teams used the OpenAPI document to generate SDKs to interact with our service.
- Python Is Easy. Go Is Simple. Simple = Easy
-
Notes: Advanced Node.js Concepts by Stephen Grider
In the source code of the Node.js opensource project, lib folder contains JavaScript code, mostly wrappers over C++ and function definitions. On the contrary, src folder contains C++ implementations of the functions, which pulls dependencies from the V8 project, the libuv project, the zlib project, the llhttp project, and many more - which are all placed at the deps folder.
- A Magia do Event Loop
-
A complete guide to the Node.js event loop
Libuv, the C library that gives Node.js its asynchronous, non-blocking I/O capability is responsible for managing the thread pool. Node.js gives you the capability of using additional threads for computationally expensive and long-lasting operations to avoid blocking the event loop.
-
What is Node.js?: A Complete Guide
Node.js is written in C, C++, and JavaScript. The core components of Node.js - the V8 engine and the libuv library - are written in C++ and C, respectively, since these languages provide low-level access to system resources, making them well-suited for building high-performance and efficient applications. JavaScript is mainly used to write the application logic.
-
Node v20.3.0 (Current) upgrade to libuv 1.45.0, including SIGNIFICANT performance improvements to file system operations on Linux
x8 apparently https://github.com/libuv/libuv/pull/3952
-
Node.js – v20.3.0
Notably upgrades to libuv 1.45 which has io_uring support. Faster file system access! Awhh yeah, it's on.
Remarkable what a mild & unintrusive PR adding io_uring was. https://github.com/libuv/libuv/pull/3952
-
Using Parallel Processing in Node.js and its Limitations
Well, the single-threaded nature ultimately leads to its biggest downfall. Node.js utilizes a synchronous event loop engineered using Libuv that takes in code from the call stack and executes it.
v8.dev
-
Show HN: Invertornot.com – API to enhance your images in dark-mode
Semi-related - I saw this trick on https://v8.dev a while back, but `filter: hue-rotate(180deg) invert();` can be a neat CSS trick to 'dark mode' some kinds of graphics. The `hue-rotate` help a bit to keep 'blues blue' etc.
It's far from perfect, but it's a neat trick to be aware of.
-
Top 8 Recent V8 Updates
V8 is a high-performance JavaScript engine developed by Google. Its purpose is to convert JavaScript code into machine code for execution by the underlying hardware. Primarily developed by the V8 team at Google, the engine focuses on speed and efficiency. In particular, it relies on just-in-time compilation and uses inline caching for high performance.
-
A list of JavaScript engines, runtimes, interpreters
V8
-
C++ Specification vs Implementation
Exactly the same as JavaScript engines. Be it Mozilla's SpiderMoneky, Google's V8, Apple's Webkit, or Microsoft's Chakra. No matter how specific we draft a specification there is always room for interpretation. Every team has a different take on what part of a spec is describing. Oftentimes it's just a matter of varying pros and cons of different approaches on the road to matching spec; various teams just kind of have to pick a direction and run with it. Other times a spec is not only too vague, but clearly short-sighted to boot.
-
Abstract Syntax Trees and Practical Applications in JavaScript
Remember that we earlier established that every source gets parsed into an AST at some point before it gets compiled or interpreted. For example, platforms like Nodejs and chromium-based browsers use Gooogle's V8 engine behind the scenes to run JavaScript and of course, some AST parsing is always involved before the interpreter kicks in. I looked V8's source and I discovered it uses its own internal parser to achieve this.
-
Bun vs Node.js: Everything you need to know
While Node.js uses Google's V8 engine that power's Chrome browser, Bun uses JavaScriptCore (JSC), which is an open source JavaScript engine developed by Apple for Safari.
-
The Ascent of Node.js: How a runtime changed the Web
While the idea of server-side JavaScript was not novel, what powered Node.js was! The V8 engine, birthed by Google for Chrome, was now driving Node.js, bringing unparalleled speed and performance to JavaScript execution.
- A Magia do Event Loop
-
Embracing Modern JavaScript Features in ES13 ES2022
V8 JavaScript Engine
-
Introduction to memory management in Node.js applications
Node runs on the V8 JavaScript engine, which handles memory allocation. The entirety of memory used for a running Node application is held in what is known as a Resident Set. This includes:
What are some alternatives?
libevent - Event notification library
babel-sublime - Syntax definitions for ES6 JavaScript with React JSX extensions.
Boost.Asio - Asio C++ Library
hermes - A JavaScript engine optimized for running React Native.
libev - Full-featured high-performance event loop loosely modelled after libevent
bun - Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
tokio-uring - An io_uring backed runtime for Rust
vercel - Develop. Preview. Ship.
uvw - Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!
0.30000000000000004 - Floating Point Math Examples
C++ Actor Framework - An Open Source Implementation of the Actor Model in C++
c8 - output coverage reports using Node.js' built in coverage