TinyGo
MicroPython
TinyGo | MicroPython | |
---|---|---|
106 | 212 | |
16,616 | 20,763 | |
0.6% | 0.4% | |
9.6 | 9.9 | |
4 days ago | 4 days ago | |
Go | C | |
GNU General Public License v3.0 or later | MIT |
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.
TinyGo
- TinyGo: A Go Compiler for Small Places
- TinyGo 0.37 has been released
-
A 10x Faster TypeScript
In my experience it is pretty difficult to make WASM faster than JS unless your JS is really crappy and inefficient to begin with. LLVM-based WASM is your best bet to surpass vanilla JS, but even then it's not a guarantee.
Go's WASM tooling isn't as good since it doesn't use LLVM and I've found it very difficult to even get parity with vanilla JS performance. There is a way to use a subset of go with llvm for faster wasm ([tinygo](https://tinygo.org/)).
I'm hoping that Microsoft might use some of their wasm chops to improve GO's native wasm compiler. Their .NET wasm compiler is pretty darn good, especially if you enable AOT.
- Build It Yourself
-
Write code on esp32 on different languages (currently AssemblyScript and TinyGo supported)
Built a platform flibbert.com where you can run code on ESP32 microcontrollers in AssemblyScript and TinyGo. It’s great for trying things out or learning without the usual setup hassle. Would love for people to try it and share feedback! (The project is on early stage, tested only on esp32-cam)
-
Wasm3 + TinyGo on PSP
So, I chose another way. In other words, the approach is to convert it into WASM using TinyGo.
- If Not React, Then What?
- Introduction to the event "TinyGo Keeb Tour 2024"
- TinyGo – A Go Compiler for Small Places
- Cylon: JavaScript framework for robotics, drones, and the Internet of Things
MicroPython
-
Why Lua Beats MicroPython for Serious Embedded Devs
it's not an embeddable runtime like Lua
While it's true you can't have multiple MicroPython interpreters running concurrently (or at least not easily; it's not that the design makes this impossible, it's just that all in all MicroPython is fairly young and development focus has been put elsewhere), it is possible to embed MicroPython. Not completely out of the box, needs some glue code etc. See for example https://github.com/micropython/micropython/tree/master/ports....
- 讓 MicroPython 輸入中文
-
MicroPython on M68k Mac
It's obviously not directly comparable - each port will be different - but startup time is <50ms on an RP2040 (Cortex M0 @133MHz):
https://github.com/micropython/micropython/issues/8420
-
MicroPython v1.25.0
Yes, although MicroPython is focused on running on microcontrollers it can be useful if you want to reduce memory consumption, flash space and even startup time on servers.
The challenge is that MicroPython has many fewer standard libraries:
https://github.com/micropython/micropython/wiki/Standard-Lib...
And so many Python libraries targeting CPython won't work out-of-the box and you'll need to modify them or use alternatives that do work on the MicroPython subset.
- MicroPython – Python for Microcontrollers
- Mruby/C and picoruby: high level langs in low-level devices?
-
Ask HN: What less-popular systems programming language are you using?
I'll link to it because many people don't know a version of Python runs on microcontrollers:
https://micropython.org/
-
Tactility: OS for the ESP32 Microcontroller Family
I'm personally working on something like this for the ESP32, but written on top of micropython [1]. A few things are written in C such as the display driver, but otherwise most things are in micropython. We chose the T-Watch 2020 V3 microphone variant as the platform [2].
Our objective is to build a modern PDA device via a mostly stand-alone watch that can be synced across devices (initially the Linux desktop). We want to achieve tasks that you might typically do on your desktop, focussed towards productivity.
We did consider a custom OS, but decided against it for a few reasons:
1. Allowing somebody else to handle basic OS stuff allows us to concentrate on what really matters, the higher level stuff on top.
2. Having multiple threads in micropython is super simple and we are able to run many active apps at the same time, rather than having to kill them off [3]. Our background apps can continuously interact with the network in the background.
3. Code written for micropython can be easily run on other Python-capable devices.
[1] https://micropython.org/
[2] https://lilygo.cc/products/t-watch-2020-v3
[3] https://tactility.one/#/application-lifecycle
- Release RP2350 and ESP32-C6 support, RISC-V native emitter, common TinyUSB code
-
Wasm2Mpy: Compiling WASM to MicroPython so it can run in Raspberry
tools/mpy_ld.py: https://github.com/micropython/micropython/blob/master/tools...
tools/mpy-tool.py lists opcodes: https://github.com/micropython/micropython/blob/master/tools...
Can the same be done with .pyc files; what are the advantages of MicroPython native modules?
Why does it need wasm2c?
What are some alternatives?
go - The Go programming language
Unicorn Engine - Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
IronPython - Implementation of Python 3.x for .NET Framework that is built on top of the Dynamic Language Runtime.
PlatformIO - Your Gateway to Embedded Software Development Excellence :alien:
circuitpython - CircuitPython - a Python implementation for teaching coding with microcontrollers