go VS TinyGo

Compare go vs TinyGo and see what are their differences.

TinyGo

Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM. (by tinygo-org)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
go TinyGo
2,075 95
119,718 14,510
0.7% 1.2%
10.0 9.3
3 days ago 2 days ago
Go Go
BSD 3-clause "New" or "Revised" License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

go

Posts with mentions or reviews of go. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-02.
  • Go: the future encoding/json/v2 module
    2 projects | dev.to | 2 May 2024
    A Discussion about including this package in Go as encoding/json/v2 has been started on the Go Github project on 2023-10-05. Please provide your feedback there.
  • Evolving the Go Standard Library with math/rand/v2
    2 projects | news.ycombinator.com | 1 May 2024
    I like the Principles section. Very measured and practical approach to releasing new stdlib packages. https://go.dev/blog/randv2#principles

    The end of the post they mention that an encoding/json/v2 package is in the works: https://github.com/golang/go/discussions/63397

  • Microsoft Maintains Go Fork for FIPS 140-2 Support
    5 projects | news.ycombinator.com | 30 Apr 2024
    There used to be the GO FIPS branch :

    https://github.com/golang/go/tree/dev.boringcrypto/misc/bori...

    But it looks dead.

    And it looks like https://github.com/golang-fips/go as well.

  • Borgo is a statically typed language that compiles to Go
    21 projects | news.ycombinator.com | 30 Apr 2024
    I'm not sure what exactly you mean by acknowledgement, but here are some counterexamples:

    - A proposal for sum types by a Go team member: https://github.com/golang/go/issues/57644

    - The community proposal with some comments from the Go team: https://github.com/golang/go/issues/19412

    Here are some excerpts from the latest Go survey [1]:

    - "The top responses in the closed-form were learning how to write Go effectively (15%) and the verbosity of error handling (13%)."

    - "The most common response mentioned Go’s type system, and often asked specifically for enums, option types, or sum types in Go."

    I think the problem is not the lack of will on the part of the Go team, but rather that these issues are not easy to fix in a way that fits the language and doesn't cause too many issues with backwards compatibility.

    [1]: https://go.dev/blog/survey2024-h1-results

  • AWS Serverless Diversity: Multi-Language Strategies for Optimal Solutions
    4 projects | dev.to | 28 Apr 2024
    Now, I’m not going to use C++ again; I left that chapter years ago, and it’s not going to happen. C++ isn’t memory safe and easy to use and would require extended time for developers to adapt. Rust is the new kid on the block, but I’ve heard mixed opinions about its developer experience, and there aren’t many libraries around it yet. LLRD is too new for my taste, but **Go** caught my attention.
  • How to use Retrieval Augmented Generation (RAG) for Go applications
    3 projects | dev.to | 28 Apr 2024
    Generative AI development has been democratised, thanks to powerful Machine Learning models (specifically Large Language Models such as Claude, Meta's LLama 2, etc.) being exposed by managed platforms/services as API calls. This frees developers from the infrastructure concerns and lets them focus on the core business problems. This also means that developers are free to use the programming language best suited for their solution. Python has typically been the go-to language when it comes to AI/ML solutions, but there is more flexibility in this area. In this post you will see how to leverage the Go programming language to use Vector Databases and techniques such as Retrieval Augmented Generation (RAG) with langchaingo. If you are a Go developer who wants to how to build learn generative AI applications, you are in the right place!
  • From Homemade HTTP Router to New ServeMux
    4 projects | dev.to | 26 Apr 2024
    net/http: add methods and path variables to ServeMux patterns Discussion about ServeMux enhancements
  • Building a Playful File Locker with GoFr
    4 projects | dev.to | 19 Apr 2024
    Make sure you have Go installed https://go.dev/.
  • Fastest way to get IPv4 address from string
    1 project | news.ycombinator.com | 14 Apr 2024
  • We now have crypto/rand back ends that ~never fail
    1 project | news.ycombinator.com | 14 Apr 2024

TinyGo

Posts with mentions or reviews of TinyGo. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-18.
  • Gokrazy – Go Appliances
    9 projects | news.ycombinator.com | 18 Dec 2023
  • A "Tiny" APISIX Plugin
    4 projects | dev.to | 27 Nov 2023
    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]
    4 projects | news.ycombinator.com | 21 Nov 2023
    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
    7 projects | news.ycombinator.com | 2 Oct 2023
    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
    1 project | news.ycombinator.com | 30 Aug 2023
  • Pico with C
    2 projects | /r/raspberrypipico | 15 Aug 2023
    You should also consider TinyGo. It can compile Go for the Pico, and is starting to get good device support.
  • Rust 1.71.0
    5 projects | news.ycombinator.com | 13 Jul 2023
    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?
    2 projects | /r/golang | 10 Jul 2023
    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
    1 project | news.ycombinator.com | 9 Jul 2023
    >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
    3 projects | /r/golang | 30 May 2023
    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?

When comparing go and TinyGo you can also consider the following projects:

v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io

MicroPython - MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).

micropython-ulab - a numpy-like fast vector module for micropython, circuitpython, and their derivatives

Angular - Deliver web apps with confidence 🚀

awesome-micropython - A curated list of awesome MicroPython libraries, frameworks, software and resources.

golang-developer-roadmap - Roadmap to becoming a Go developer in 2020

PlatformIO - Your Gateway to Embedded Software Development Excellence :alien:

RxGo - Reactive Extensions for the Go language.

zephyr - Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.