countwords
TinyGo
Our great sponsors
countwords | TinyGo | |
---|---|---|
43 | 95 | |
209 | 14,439 | |
- | 1.5% | |
5.9 | 9.4 | |
about 2 years ago | 7 days ago | |
Rust | Go | |
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.
countwords
-
How fast is really ASP.NET Core?
"dang, I didn't know that was 50x faster than the idiomatic way" or "hey, I didn't know that this implementation in the stdlib prioritized this over that and made this so slow, that's interesting" -- .e.g, there's some kinda neat language details to be found in something like Ben Hoyt's community word count benchmarks repo and 'simple' vs 'optimal' code: https://github.com/benhoyt/countwords
-
Correct name for word matching problem
It benchmarks programs that count the total number of unique words in some input. It's not exactly equivalent to your problem, but it's similarish. All of the programs used some kind of hash map for lookups, but I contributed a program that used a trie. Its performance in my experience varies depending on the CPU interestingly enough. On my old CPU (i7-6900K) it was a little slower, but on my new cpu (i9-12900KS) it was faster.
-
Performance comparison: counting words in Python, C/C++, Awk, Rust, and more
Why not read the source code? :-)
I wrote comments explaining things: https://github.com/benhoyt/countwords/blob/8553c8f600c40a462...
-
do you guys prefer functional programming style when using rust?
My own code example of a drastic speed up (~25%) simply replacing a couple of for loops with iters: https://github.com/benhoyt/countwords/pull/115
- Ripen scripting engine (Similar to RetroForth, but tiny)
- Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust
-
The difference between Go and Rust
And yet Go was faster than Rust in a simple app that count words: https://benhoyt.com/writings/count-words/
-
How to Rapidly Improve at Any Programming Language
> but the performance profiles & characteristics that we must know about in order to make a choice on which tool to use. And it shouldn't be that each user has to figure it out on their own, dig into PR's or whatever.
That's an interesting take – I like the idea of a catalog of standard tasks with implementations in several languages as well as their performance characteristics. I suppose Rosetta Code gets the ball rolling with this, but it's missing some performance metrics. It reminds me of [Ben Hoyt's piece](https://benhoyt.com/writings/count-words/) on counting unique words in the KJV Bible in different languages.
-
Faster string keyed maps in Go
This article shows that map lookups can be optimized by using the (unintuitive) pattern:
- Go beats out several top languages including Rust in this performance matchup
TinyGo
- Gokrazy – Go Appliances
-
A "Tiny" APISIX Plugin
Reading through the documentation, you will understand why this plugin is called "tiny," i.e., the SDK uses the TinyGo compiler instead of the official Go compiler. You can read more about why this is the case on the SDK\'s overview page, but the TLDR version is that the Go compiler can only produce Wasm binaries that run in the browser.
-
What's Zig got that C, Rust and Go don't have? [video]
Not only you can fit Go into a kernel, there is at least two products that do so.
TamaGo, used to write the firmware used in USB armory.
https://www.withsecure.com/en/solutions/innovative-security-...
TinyGo, which even has official Arduino and ARM support, and is sponsored by Google
https://tinygo.org/
Ah but that isn't proper Go! Well neither is the C code that is allowed to be used in typical kernel code, almost nothing from ISO C standard library is available, and usually plenty of compiler specific language extensions are used instead.
-
Show HN: A new stdlib for Golang focusing on platform native support
Reminds me of https://tinygo.org/ - a project that brings Golang to embedded devices, browser (wasm) contexts. Do you converge or diverge from that project?
- TinyGo release 0.29 is out
-
Pico with C
You should also consider TinyGo. It can compile Go for the Pico, and is starting to get good device support.
-
Rust 1.71.0
Thankfully some folks completly ignored whatever the rest of the world thinks system programming is all about and created:
- TinyGo (https://tinygo.org/), which is acknowledged by people in the industry[0][1]
- TamaGo unikernel on USB Armory secure key (https://www.withsecure.com/de/solutions/innovative-security-...)
And then there is the question if writing compilers, assemblers, linkers is systems programming or not.
[0]-https://www.cnx-software.com/2019/08/28/tinygo-go-compiler-f...
[1]-https://twitter.com/ArmSoftwareDev/status/131680481331796787...
-
When would you (not) recommend Go over Rust?
Have you seen TinyGo? In the case of embedded system I would probably still chose C over Rust if the system didn't support dynamic memory allocation, and most embedded systems do not.
-
“C is quirky, flawed, and an enormous success” – Dennis Ritchie
>I really hate how for microcontrollers the only two choices are either C++ or Micropython
There's TinyGo as well. https://tinygo.org/
-
WebAssembly System Interface (WASI) with sockets for Go
Gist link fixed, thanks. Compared to TinyGo, Go with GOOS=wasip1 will probably generate larger artifacts (at least, for now). This is because it bundles the entire Go runtime. The benefit is that it fully supports goroutine scheduling and non-blocking I/O. TinyGo (I believe) still uses a custom asyncify pass and does not support non-blocking I/O nor basic WASI networking (e.g. https://github.com/tinygo-org/tinygo/pull/2748 never landed, but GOOS=wasip1 supports it).
What are some alternatives?
CPython - The Python programming language
MicroPython - MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
coreutils - upstream mirror
go - The Go programming language
llfio - P1031 low level file i/o and filesystem library for the C++ standard
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
parallel-hashmap - A family of header-only, very fast and memory-friendly hashmap and btree containers.
micropython-ulab - a numpy-like fast vector module for micropython, circuitpython, and their derivatives
securitytxt.org - Static website for security.txt.
awesome-micropython - A curated list of awesome MicroPython libraries, frameworks, software and resources.
leocad - A CAD application for creating virtual LEGO models
PlatformIO - Your Gateway to Embedded Software Development Excellence :alien: