惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Register - Security
The Register - Security
大猫的无限游戏
大猫的无限游戏
P
Privacy International News Feed
Schneier on Security
Schneier on Security
Google DeepMind News
Google DeepMind News
Cloudbric
Cloudbric
SecWiki News
SecWiki News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Troy Hunt's Blog
V
V2EX - 技术
T
Tenable Blog
V
Visual Studio Blog
C
CERT Recently Published Vulnerability Notes
C
Comments on: Blog
WordPress大学
WordPress大学
Scott Helme
Scott Helme
A
Arctic Wolf
H
Heimdal Security Blog
Last Week in AI
Last Week in AI
P
Palo Alto Networks Blog
Hugging Face - Blog
Hugging Face - Blog
T
Tor Project blog
Cyberwarzone
Cyberwarzone
博客园 - 三生石上(FineUI控件)
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
L
LangChain Blog
V
Vulnerabilities – Threatpost
小众软件
小众软件
博客园 - 叶小钗
GbyAI
GbyAI
S
Schneier on Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Last Watchdog
The Last Watchdog
P
Privacy & Cybersecurity Law Blog
I
InfoQ
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
A
About on SuperTechFans
S
SegmentFault 最新的问题
S
Secure Thoughts
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
宝玉的分享
宝玉的分享

Hacker News

Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Ancient DNA reveals pervasive directional selection across West Eurasia [pdf] Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line Building a Z-Machine in the worst possible language High-Level Rust: Getting 80% of the Benefits with 20% of the Pain GitHub - duguyue100/midnight-captain: Inspired by Midnight Commander, tailored to my taste. How to build a `git diff` driver · Jamie Tanna | Software Engineer Center for Responsible, Decentralized Intelligence at Berkeley The Local Universe’s Expansion Rate Is Clearer Than Ever, but Still Doesn’t Add Up - A new synthesis of astronomical measurements confirms a persistent mismatch that could point to physics beyond current models The air throughout our homes is infused with microplastics. But there are things you can do to breathe less of them The disturbing white paper Red Hat is trying to erase from the internet – OSnews The Future of Everything is Lies, I Guess: Annoyances ‘Abhorrent’: the inside story of the Polymarket gamblers betting millions on war Productive procrastination — Max van IJsselmuiden maps, territory and LMs 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job The Seasons are Wrong Artemis II crew splashes down near San Diego after historic moon mission We gave an AI a 3 year retail lease in SF and asked it to make a profit | Andon Labs How a dancer with ALS used brainwaves to perform live On filing the corners off my MacBooks Installing every* Firefox extension OpenClaw’s memory is unreliable, and you don’t know when it will break Steve Blank Nowhere Is Safe Chimpanzees in Uganda locked in vicious 'civil war', say researchers watgo - a WebAssembly Toolkit for Go linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. Founding Product Engineer at Bild AI | Y Combinator A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace Cooperative Vectors Introduction | Evolve Keeping a Postgres queue healthy — PlanetScale Our response to the Axios developer tool compromise Do Americans read print books, e-books or audiobooks more? The Zettelkasten Method in Obsidian: A Practical Setup Guide Artemis II Is Competency Porn and We Are Starving For It WeakC4 Flight Viz — Cockpit View A Mexican surveillance giant you’ve never heard of is now watching the U.S. border Surelock: Deadlock-Free Mutexes for Rust RISC-V 101 – what is it and what does it mean for Canonical? | Ubuntu The Problem That Built an Industry How Much Linear Memory Access Is Enough? | Solidean Investigating Split Locks on x86-64 Simplest hash functions Sybilproof reputation mechanisms (2005) [pdf] What is a property? How Complex is my Code? Static code analysis in Kotlin — tools overview Toffoli gates are all you need PGLite evangelism dcmake: a new CMake debugger UI Clojure on Fennel part one: Persistent Data Structures Fragments: April 2 Python Release Python install manager 26.1 The Life and Death of the Book Review - Liberties Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Building slogbox Apple Silicon and Virtual Machines: Beating the 2 VM Limit Who was “Not Even Wrong” first? Pokemon Evolution Vs Darwinian Evolution The APL Programming Language Source Code
Pyodide 314.0 Release
Gyeongjae Choi, Hood Chatham, Agriya Khetarpal · 2026-06-09 · via Hacker News

We are pleased to announce the Pyodide 314.0 release.

This release focuses on standardization and packaging, marking a significant milestone in the Python-in-the-browser ecosystem.

PEP 783 is Accepted: What Does It Mean?

The acceptance of PEP 783: Emscripten packaging marks perhaps the most exciting change in the history of the Python-in-the-browser ecosystem. Pyodide maintainers—especially @hoodmane—have poured an immense amount of effort into this over a very long time. Achieving this long-standing goal will expand our ecosystem exponentially.

What does this mean in practice? You can now publish Python packages built for Pyodide (or any Python runtime compatible with the PyEmscripten platform defined in PEP 783) directly to PyPI and install them at runtime.

Previously, the Pyodide maintainers had to maintain, build, and host over 300 packages ourselves. This created a significant burden on our maintainers and became a major bottleneck for the community, as every new package required manual review.

Moving forward, package maintainers can simply build and publish Pyodide wheels to PyPI, just as they do for native wheels on Linux, macOS, or Windows. By the time you are reading this, cibuildwheel v4.0 already supports building for the PyEmscripten 2025 and 2026 ABIs. The 2026 ABI is currently for our prerelease build only and thus needs to be enabled via the pyodide-prerelease option, but we will update cibuildwheel and make 314.0 stable available in a v4.1.0 release soon.

We’ve written a comprehensive guide on building and publishing Pyodide wheels to PyPI. You can find it in the pyodide-build documentation.

If you are a maintainer of a Python package that uses PyO3 or maturin, there is also a good article written by Victorien Plot from the Pydantic team that explains how to build and publish PyEmscripten wheels.

With PEP 783 now formally accepted, the platform tags now use the pyemscripten_* prefix: pyemscripten_2025_0 for Python 3.13 (Pyodide 0.29.x) and pyemscripten_2026_0 for Python 3.14 (Pyodide 314.x). If you build wheels for either of these versions, update your build configurations and pyodide-build version accordingly.

New Versioning Scheme

You might be wondering: wasn’t the last version 0.29, and now it’s 314.0?

Yes, we’re updating Pyodide’s versioning scheme in alignment with these new packaging standards.

To fully standardize the packaging process under PEP 783, we wanted to stabilize platform compatibility for packages so they don’t break with every Pyodide release. Therefore, we’re transitioning to a Python-version-based versioning scheme. For example, Pyodide 314.x directly corresponds to Python 3.14.

Whenever we make binary-incompatible changes, they will now align strictly with upstream Python updates (typically once a year). This means you can safely use existing packages built for the same Python version across multiple Pyodide releases. We plan to release a new major Pyodide version annually, synchronized with Python updates.

This first release in the new scheme ships Python 3.14.2 and Emscripten 5.0.3.

See also: Pyodide Issue #6084 for more context.

Standard Library Changes

Originally, Pyodide “unvendored” several Python standard libraries, including ssl, sqlite3, and lzma.

This was done to reduce the Pyodide distribution size, enabling faster startup times while allowing users to install these packages after loading Pyodide when needed.

For example, if your application or package needed sqlite3, you would install it after loading Pyodide:

await pyodide.loadPackage("sqlite3");

However, with Pyodide now supporting PEP 783, we’ve decided to restore these libraries to the standard library to provide a better user experience. This introduces a trade-off: while the initial download size increases, users no longer need to install these packages separately, creating a more seamless experience.

As part of this cleanup, the pydecimal and test packages have been removed from the distribution, and the fullstdlib option in loadPyodide() is now deprecated and has no effect.

We’ve also decided to drop OpenSSL from the standard library, which would have introduced a substantial size increase when vendored. This results in two breaking changes:

  1. The ssl module no longer relies on OpenSSL. We’ve implemented a custom SSL implementation that provides basic features compatible with the standard library’s ssl module, but without actual SSL/TLS support. Note that most of the ssl module’s functionality didn’t work even before this change because we didn’t support socket operations in the browser.
  2. The hashlib module no longer supports some cryptographic hash functions that were previously available through OpenSSL.

Since this release ships Python 3.14, the new compression.zstd module is now available in Pyodide out of the box, providing native zstd compression and decompression support.

Pyodide Is Now a Native ES Module

pyodide.asm.js has been renamed to pyodide.asm.mjs to properly reflect that it is an ES module. Most users will not need to change anything, since loadPyodide() handles this internally. However, if you reference the file directly, there are some breaking changes to be aware of:

  • Classic (non-module) workers are no longer supported. You must use a module worker (type: "module") instead.

  • Service workers that statically imported pyodide.asm.js must now import createPyodideModule from pyodide.asm.mjs and pass the result as an argument to loadPyodide:

    import createPyodideModule from "./pyodide.asm.mjs";
    import { loadPyodide } from "./pyodide.mjs";
    
    loadPyodide({ createPyodideModule }).then((pyodide) => { ... });
    
  • Bundlers: Update any configuration that explicitly references pyodide.asm.js to use pyodide.asm.mjs instead.

Experimental Support for Socket Operations in Node.js

We’ve added experimental support for socket operations in Node.js. This allows you to use the socket module in Pyodide when running in a Node.js environment, enabling TCP socket creation and communication, such as connecting to a remote database server. It covers TCP sockets with TLS, async socket functions for the webloop, and non-blocking mode. We’ve tested with a few database drivers: pymysql (MySQL), pg8000 (PostgreSQL), and redis-py.

This can be enabled by running pyodide.useNodeSockFS():

const pyodide = await loadPyodide();
await pyodide.useNodeSockFS();

On Node.js <= v24, you also need to pass --experimental-wasm-stack-switching to enable JSPI.

JavaScript Interop Improvements

This release brings several improvements to the JavaScript interop layer:

JsBigInt: Proper bigint roundtripping

We’ve added pyodide.ffi.JsBigInt, a new int subtype that makes JavaScript’s bigint type roundtrip correctly through Python. Before this, a bigint arriving in Python would be converted to an int, but converting it back to JavaScript would produce a number, which silently loses precision for values above 2^53. Python integers larger than 2^53 had the same problem. Now both cases produce a JsBigInt, which converts back to bigint on the JavaScript side. Since JsBigInt supports all the same operations as int, most existing code won’t need any changes.

JavaScript Resource Management and Python Context Managers

Pyodide now works with the JavaScript/ECMAScript Explicit Resource Management proposal (using declarations) on both sides of the language boundary.

On the JavaScript side, PyProxy and PyBufferView now implement [Symbol.dispose], so you can use using to make sure Python objects get cleaned up when they go out of scope:

{
  using proxy = pyodide.runPython("some_object()");
  // proxy is destroyed automatically at end of block
}

On the Python side, if a JavaScript object has a [Symbol.dispose]() method, you can use its JsProxy as a context manager with with. The same goes for [Symbol.asyncDispose]() for async context managers:

with js_object as x:
    ...  # x[Symbol.dispose]() is called on exit

Better Array-like Support for JsProxy

Previously, only true JavaScript arrays (where Array.isArray() returns true) and a handful of known types like HTMLCollection and NodeList would get subscript support in their JsProxy. Now any JavaScript object that is iterable and has a length property is treated as array-like, so proxy[i] just works for a much broader set of objects.

On top of that, slice subscripting now works too:

proxy[1:4]   # returns a new array-like from index 1 to 3
proxy[::2]   # every other element

Acknowledgements

A big thank you to Python Steering Council members and the broader Python community for their support and feedback on PEP 783 and related standards. Thanks also to the cibuildwheel team for adding PyEmscripten support, and to Victorien Plot for writing the guide on building and publishing PyEmscripten wheels on the Pydantic blog.

Thanks to all the contributors who made this release possible:

Agriya Khetarpal, Amir Tadrisi, Andrej730, BOMIN LYU, Chanho Lee, Christian Clauss, Copilot, Daniel Chambers, Darshan, Gyeongjae Choi, Hanjeong Lee, Hood Chatham, hyoinandout, Juniper Tyree, kaif ansari, Maddy Guthridge, MisterNox, Pepijn de Vos, Qiaochu Hu, Raj Kumar Gupta, SATHVIK V SHETTY, Seungheon Lee, SongYoungUk, Victorien