Why I built this. In my work I make a lot of little tools and they all end up as spreadsheets. Spreadsheets are fine but the UI is limiting. I wanted real apps a non-technical person can just open and use, without standing up a server or making an account. So I borrowed the spreadsheet model and ran with it. Free and open source, because I like making things that help people.

getvessel.dev

#python #pyodide #opensource #buildinpublic

Since a .vessel can carry code someone else wrote, isolation was the main thing I designed around. Each one runs sandboxed and can only reach the network origins it declares up front. Your data stays a plain SQLite file too. Unzip a .vessel and you can open the database in any SQLite tool. Nothing locked away.

getvessel.dev

#localfirst #selfhosted #privacy #sqlite #python #pyodide #ai #opensource

A bit on how Vessel works under the hood. The Python backend runs under Pyodide in a Web Worker, so there's genuinely no server in the loop. The worker can't even open a socket. The UI talks to FastAPI through a fetch bridge, and SQLite rides along inside the file. All local, all offline.

getvessel.dev

#pyodide #python #webassembly #sqlite #opensource #localfirst

I made a thing called Vessel. A .vessel is a single file holding an app's whole UI, a Python (FastAPI) backend, and an SQLite database, with the data living right inside the file. You install a small host once, then any .vessel opens locally and runs like a normal app. Think of it like a spreadsheet, except the document is a real web app instead of a grid!

https://getvessel.dev/

#python #pyodide #opensource #localfirst

Vessel

The spreadsheet model — an installed engine plus a portable zipped document — for real web-tech tools.

pyodide est un portage de l'interpréteur Python en webassembly, qui permet donc de faire tourner du code écrit en Python dans le navigateur, code qui a accès à toute l'API web du navigateur.

Avec l'acceptation de la PEP 783, il est désormais possible de publier sur PyPI des paquets construits pour PyOdide : https://blog.pyodide.org/posts/314-release/.

Michel Caradec nous avait parlé de PyOdide dans son intervention "Python loin de ton ordinateur" : https://youtu.be/Dzjjwhx2Amk?list=PLv7xGPH0RMUT1GSCGHJmqnswpk-nyz5aq&t=1129

#Python #PyOdide #wasm #PyPI

Pyodide 314.0 Release

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.

Pyodide blog
🌗 Pyodide 314.0 版本發布
➤ 邁向標準化與生態整合的新時代
https://blog.pyodide.org/posts/314-release/
Pyodide 314.0 的發布標誌著 Python 在瀏覽器端運作的一個重大里程碑。本次更新的核心在於全面採納 PEP 783 標準,實現了與 PyPI 生態的無縫整合,並引入了與 Python 主版本同步的全新命名規範。除了大幅改善打包效率外,該版本還強化了與 JavaScript 的互操作性,包括改進的 BigInt 處理及對 ES 模組的原生支援,同時在 Node.js 環境中引入了實驗性的 Socket 支援,進一步拓寬了 Pyodide 的應用邊界。
+ 終於等到 PEP 783 落地了!以前為了讓套件在 Pyodide 上跑,維護者要手動編譯打包的惡夢總算結束,以後直接發佈到 PyPI 就能用,這纔是開源該有的樣子。
+ 為了追求標準化而捨棄 OpenSSL 並移除完整標準庫選項,對於某些依賴特定加密功能的專案來說
#Python #WebAssembly #Web 開發 #Pyodide #開源軟體
Pyodide 314.0 Release

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.

Pyodide blog
🎉 BREAKING NEWS: #Python nerds release #Pyodide 314.0, and now #WebAssembly wheels can roll right onto PyPI! 🚀 Who needs stability or real-world #programming when you can have experimental socket support and a "native ES module"? 🧐 Maybe they'll figure out how to make it useful by the time PEP 783 is a distant memory. 🙄
https://blog.pyodide.org/posts/314-release/ #PEP783 #news #HackerNews #ngated
Pyodide 314.0 Release

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.

Pyodide blog

Pyodide 314.0: Python packages can now publish WebAssembly wheels to PyPI

https://blog.pyodide.org/posts/314-release/

#HackerNews #Pyodide #WebAssembly #Python #PyPI #314.0 #development

Pyodide 314.0 Release

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.

Pyodide blog

If y'all would indulge me a late addition: the appropriate lines in the #RDKit code (https://github.com/rdkit/rdkit/blob/master/rdkit/Chem/Draw/__init__.py#L190-L224) can of course be modified to use the B&R blob I introduced in the essay.

What's hampering me from actually trying this out for myself is that due to RDKit not yet being supported by #Pyodide, a lot of the webservices that can run #Python from the browser (e.g. the online version of #jupyter) are also not able to load RDKit. (I have seen at least two proposals to use the JS version of RDKit instead, but I have not managed to make that work either.) Because I had written that essay, and am currently writing this toot from a smartphone (for a number of reasons, I don't have access to a computer I can use), indirectly using RDKit through Wolfram Cloud (basically the online version of Mathematica) is pretty much how I attempt to do cheminformatics experiments on a smartphone. :)

#chemistry #cheminformatics #visualization

rdkit/rdkit/Chem/Draw/__init__.py at master · rdkit/rdkit

The official sources for the RDKit library. Contribute to rdkit/rdkit development by creating an account on GitHub.

GitHub
Working on some #orgmode backend to export python notebooks that can run in the browser with #pyodide 👀