awesome-tinygo
  
  
    A curated list of awesome TinyGo projects and libraries. Inspired by awesome-go. 
    https://github.com/tinygo-org/awesome-tinygo
  
        Last synced: 5 days ago 
        JSON representation
    
- 
            Embedded Systems- 
                    General use- fat - Filesystem implementation using the File Allocation Table in pure Go.
- go-maquina - Finite State Machine (FSM) implementation with simplicity and maintainability in mind using Go generics.
- go-pico - Raspberry Pi RP2040 Pico SDK for golang.
- mm-go - Generic manual memory management for golang.
- bouncer - bouncer is a button input handler library supporting press-lengths of different durations, and debouncing.
- periph/devices - Device drivers.
- schedule - Event-loop scheduling library for synchronizing actions over long periods of time.
- tinyfs - Embedded filesystems for TinyGo like FATfs and LittleFS on microcontrollers.
- TinyGo Drivers - Provides a collection of hardware drivers for devices such as sensors and displays that can be used together with TinyGo.
- pio - Programmable I/O API for RP2040/RP2350 using TinyGo
- tinymath - The fastest and smallest Go math library for constrained environments, like microcontrollers or WebAssembly.
- tinytest - The only assertion library that works with TinyGo
 
- 
                    Protocol implementations- achicken - Dead-simple serial protocol with CRC for small projects.
- ether-swtch - Low level Ethernet/IP/TCP/HTTP stack marshaller/unmarshaller for use in tiny places.
- go-canard - CAN/OpenCyphal implementation in pure Go. Port of libcanard.
- mlkem768 - Quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber) implementation in Go.
- gomavlib - Mavlink protocol (2.0 and 1.0) implementation in Go for control and instrumentation of autonomous vehicles.
- natiu-mqtt - A dead-simple, extensible MQTT implementation well suited for embedded systems.
- peamodbus - Fault tolerant, TCP modbus implementation in Go that just works. Apt for embedded systems.
- peasocket - Dead-simple, extensible websocket implementation in Go.
- seqs - Networking library for use on microcontrollers. Basically a more featureful LWIP.
- tiny-sproto - A simple Point-to-Point Protocol implementation written in Go.
- go-bthome - Minimal package for creating and parsing BTHome service data using Go/TinyGo.
- go-cayenne-lib - CayenneLPP in Go
 
- 
                    Instrumentation and control with sensors and actuators
 
- 
                    
- 
            Display Hardware- TinyTerm - Tiny graphics library for SPI connected displays.
- TinyDraw - Draw primitives on TinyGo displays. It is heavily based on the Adafruit GFX library.
- TinyFont - Font/text package for TinyGo displays. It is heavily based on Adafruit's GFX library.
- SSD1306 font - Lite SSD1306 OLED font library using TinyGo.
- tinygl - The fastest and smallest Go math library for constrained environments, like microcontrollers or WebAssembly.
 
- 
            Code Editing- VSCode - TinyGo support for Visual Studio Code.
- Goland - TinyGo support for Goland.
- Vim - TinyGo support for Vim/NeoVim.
- bash/zsh/clink - Adds bash/zsh/clink auto-completion to TinyGo.
- Display Simulator - `tinydisplay` is a tiny display for TinyGo development.
 
- 
            Continuous Integration- TinyHCI - Test actual hardware connections for microcontrollers. It is intended to provide smoke test implementations that exercise the basic functionality for each kind of hardware interface for each supported microcontroller.
- setup-tinygo - Sets up a TinyGo environment for GitHub Actions.
 
- 
            Gaming- 
                    Instrumentation and control with sensors and actuators- tinygba - Tools and helpers for developing GBA programs using TinyGo.
- gonx - Wrapper around libnx for developing Nintendo Switch programs using TinyGo.
- Flappy Boot - clone of flappy bird for the GBA written using TinyGo.
- firefly-go - Go SDK for making Firefly Zero games
- wasm4go - Framework for making WASM-4 games with Go (and TinyGo).
- ghost-castle - Simple roguelike game written using TinyGo with TinyRogue on Firefly Zero
- koebiten - Koebiten is a 2D game engine that runs on TinyGo. Inspired by Ebitengine and is characterized by its simple API.
- tinyrogue - Fun package for creating roguelike games with TinyGo on Firefly Zero using WASM
 
 
- 
                    
- 
            WebAssembly- 
                    DOM Manipulation
- 
                    WebSockets- TinyWebSocket - Wraps the `syscall/js` api to provide a better developer experience, while being compilable by TinyGo
 
- 
                    WASI and WASM Unknown- go-modules - WebAssembly, WASI, and Component Model tools for Go
- wasmCV - Go bindings for wasmCV computer vision interfaces using WebAssembly.
- wypes - Go library to define type-safe host functions in wazero and other WebAssembly runtimes.
 
 
- 
                    
- 
            Wireless Communication- 
                    WASI and WASM Unknown- `cbor` - Library for encoding and decoding Concise Binary Object Representation data and Sequences (RFC8949).
- `cereal` - All-you-need serial device tooling integrating bugst, goburrow, tarm and sers serial libraries.
- `float16` - IEEE 754 half-precision floating-point format (binary16) library.
- `godsp` - Basic digital signal processing functions using the discrete wavelet transform (DWT).
- `math32` - 32bit math functions in pure Go.
- `mathgl` - A pure Go 3D math library.
- `tvd` - Total Variation Denoising filter ideal for capturing edge transitions.
- Go Bluetooth - Go Bluetooth is a cross-platform package for using Bluetooth Low Energy hardware from the Go programming language.
- lorawan - LoRaWAN implementation for embedded devices using TinyGo.
- Arduino Mega Programmer - Read ROMs, EPROM, Flash of older computers such as a Commodore C128 ROM chip.
- LED Cube - 6x32x32 LED cube, inspired by a LED cube I've seen at CCC and the SquareWave Dot cube.
- HeadTracker - Bluetooth DIY Head Tracker, for Nano 33 BLE and XIAO BLE Sense boards.
- RC PWM to RGB LED - WS2812 LED strip color and brightness control with two RC PWM channels
- USB HID Keyboard firmware for TinyGo - keyboard firmware for tinygo
- Gopherbot - A robotic gopher plushie that you can code using TinyGo
- Gobadge - TinyGo powered badge using Adafruit Pybadge Hardware
- TinyGlobo - A pico balloon floats into the great big world, towing a RP2040 Pico programmed with TinyGo using LoraWAN to communicate along the way.
- FPV Combat Gadget - [FPV Combat](https://fpv-combat.com/) configurator with display and a rotary encoder (multi-level menu system with input), runs on XIAO.
- go-haystack - Track personal Bluetooth devices via Apple's "Find My" network using OpenHaystack and Macless-Haystack with tools written in Go/TinyGo. No Apple hardware required!
- wasmVision - wasmVision gets you going with computer vision using WebAssembly with processors written using TinyGo/Rust/C.
- `lap` - Extremely lightweight linear algebra package similar to gonum.
- `u-root` - Go versions of many standard Linux tools, such as ls, cp, or shutdown among other awesome OS stuff.
- gopher-board - Original board with Gopher design for Waveshare RP2040-Zero and XIAO.
- gopher.pretty - Kicad footprint file of Gopher design. Lets you make your own board.
- ledrace - TinyGo implementation of Open LED Race
- `tinystring` - Lightweight text manipulation library with a fluid API and no external dependencies.
 
 
- 
                    
- 
            Websites- 
                    TinyGo Community- TinyGopher Worldmap - Locate Tinygophers all over the world!
 
- 
                    Tutorials- Blinky tutorial - A tutorial to get familiar with TinyGo basics.
 
 
- 
                    
- 
            Encoders- 
                    Instrumentation and control with sensors and actuators- jsony - A blazing fast and safe Go package for serializing JSON
- protobuf-go-lite - Reflection-free Protobuf for Go.
- easyjson - Fast JSON serializer for golang.
- gjson - Get JSON values quickly - JSON parser for Go
 
 
- 
                    
            Programming Languages
          
          
        
            Categories
          
          
        
            Sub Categories
          
          
        
            Keywords
          
          
              
                golang
                31
              
              
                tinygo
                25
              
              
                go
                21
              
              
                embedded
                10
              
              
                wasm
                8
              
              
                embedded-systems
                5
              
              
                webassembly
                5
              
              
                gamedev
                3
              
              
                wasi
                3
              
              
                gpio
                3
              
              
                json
                3
              
              
                rp2040
                3
              
              
                computer-vision
                2
              
              
                opencv
                2
              
              
                wasmcv
                2
              
              
                microcontroller
                2
              
              
                i2c
                2
              
              
                linux
                2
              
              
                adafruit
                2
              
              
                nrf52840
                2
              
              
                spi
                2
              
              
                json-serialization
                2
              
              
                generics
                2
              
              
                framework
                2
              
              
                serialization
                2
              
              
                lorawan
                2
              
              
                pico
                2
              
              
                json-parser
                2
              
              
                raspberry-pi
                2
              
              
                serial
                2
              
              
                rpi
                2
              
              
                sdk
                2
              
              
                websockets
                2
              
              
                mavlink
                1
              
              
                golang-library
                1
              
              
                pqc
                1
              
              
                ml-kem
                1
              
              
                kyber
                1
              
              
                tcp
                1
              
              
                tcp-ip
                1
              
              
                cryptography
                1
              
              
                ws2812
                1
              
              
                udp
                1
              
              
                userspace-networking
                1
              
              
                sensors
                1
              
              
                modbus
                1
              
              
                neopixels
                1
              
              
                mpu6050
                1
              
              
                mma8653
                1
              
              
                mag3110
                1