Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-tinygo

A curated list of awesome TinyGo projects and libraries. Inspired by awesome-go.
https://github.com/tinygo-org/awesome-tinygo

Last synced: 3 days ago
JSON representation

  • Embedded Systems

    • General use

      • 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.
      • fat - Filesystem implementation using the File Allocation Table in pure Go.
      • 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.
    • 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.
      • natiu-mqtt - A dead-simple, extensible MQTT implementation well suited for embedded systems.
      • gomavlib - Mavlink protocol (2.0 and 1.0) implementation in Go for control and instrumentation of autonomous vehicles.
      • mlkem768 - Quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber) implementation in Go.
      • 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.
    • Instrumentation and control with sensors and actuators

      • fusion - Sensor fusion algorithms (gyroscope/accelerometer) implemented in pure Go.
      • magcal - (Magical) Magnetometer Calibration
      • pctl - "process control" is a package for industrial control in Go. Filtering and control theory algorithms.
  • 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.
  • Display Hardware

    • 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.
    • TinyTerm - A minimal terminal for TinyGo devices supporting 256-color ANSI escape codes.
    • SSD1306 font - Lite SSD1306 OLED font library using TinyGo.
  • 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.
      • Flapy Boot - clone of flappy bird for the GBA written using TinyGo.
  • WebAssembly

    • DOM Manipulation

      • TinyDom - DOM manipulation library. For use in WASM
      • GoUI - A web framework for making user interfaces
    • WebSockets

      • TinyWebSocket - Wraps the `syscall/js` api to provide a better developer experience, while being compilable by TinyGo
  • Wireless Communication

    • WebSockets

      • Go Bluetooth - Go Bluetooth is a cross-platform package for using Bluetooth Low Energy hardware from the Go programming language.
      • 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.
      • `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).
      • `lap` - Extremely lightweight linear algebra package similar to gonum.
      • `math32` - 32bit math functions in pure Go.
      • `mathgl` - A pure Go 3D math library.
      • `tvd` - Total Variation Denoising filter ideal for capturing edge transitions.
      • `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.
  • Websites