Skip to content
@tinywasm

Tiny Wasm

The Fullstack Go framework

TinyWasm

The TinyWasm project focuses on providing libraries for building applications with web technologies using Go as the main language, compiling to the frontend via WebAssembly with the minimum possible binary size (TinyGo compatibility first).

Why

Go's WebAssembly potential is incredible, but traditional applications face a critical challenge: massive binary sizes that make web deployment impractical.

The Problem

Every Go project needs string manipulation, type conversion, and error handling - but importing standard library packages (fmt, strings, strconv, errors) creates significant binary bloat that hurts:

  • 🌐 Web app performance - Slow loading times and poor user experience
  • 📱 Edge deployment - Resource constraints on small devices
  • 🚀 Distribution efficiency - Large binaries for simple operations

The Solution

TinyWasm provides lightweight, manual implementations that deliver:

  • 🏆 Drastic size reduction - Optimized for WebAssembly
  • Full TinyGo compatibility - No compilation issues or warnings
  • 🎯 Predictable performance - No hidden allocations or overhead
  • 🔧 Familiar API - Drop-in replacement for standard library functions

Core Framework

The main framework for development is tinywasm/app. It serves as the primary tool for building, watching, and deploying your TinyWasm applications.

Packages

Package Description Status
app Full stack TUI development environment with live reload, test, deploy, CI/CD for web applications (PWA). 🚧 In Development
assetmin A lightweight and efficient web asset packager and minifier for Go applications. ✅ Ready
binary High-performance binary serialization library for Go, specifically designed for TinyGo compatibility. ✅ Ready
broker A lightweight broker that mediates HTTP requests and responses. 🚧 In Development
bus Minimal pub/sub event bus for the tinywasm ecosystem. ✅ Ready
cdproto Generated commands, types, and events for the Chrome DevTools Protocol domains. ✅ Ready
chromedp A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol. ✅ Ready
client Tinywasm compilation toolbox designed to streamline the compilation of Go packages to WebAssembly. 🚧 In Development
components HTML components for the go web framework tinywasm. 🚧 In Development
context Minimalist context library for TinyGo. ✅ Ready
crudp A simple binary CRUD protocol for Go structs. ✅ Ready
crypto CryptoAutoLib port for TinyGo. ✅ Ready
deploy Automated deployment service for Go applications. 🚧 In Development
depfind A Go tool to find reverse dependencies - lists packages that import specified target packages. ✅ Ready
devbrowser Lightweight Go library for launching and controlling web browsers programmatically. ✅ Ready
devflow Complete Go development automation: project init, testing, versioning, updates, and backups. ✅ Ready
devtui Reusable terminal user interface abstraction for Go development tools. 🚧 In Development
devwatch fsnotify implementation that watches file system changes in a project directory. ✅ Ready
dom Ultra-minimal DOM & event toolkit for Go (TinyGo WASM-optimized). ✅ Ready
fetch A lightweight Go library that unifies HTTP requests across environments. ✅ Ready
fmt Lightweight Go library that provides comprehensive string manipulation and formatting. ✅ Ready
form Form generation using DOM and structs. 🚧 In Development
gobuild Minimal build handler for compiling Go or WebAssembly targets via CLI. ✅ Ready
goflare Lightweight handler for building and deploying Go-based WebAssembly and JavaScript modules to Cloudflare. 🚧 In Development
gorun Go package to run, monitor, and stop external programs. ✅ Ready
imagemin Image size reduction tool for web projects. ✅ Ready
indexdb IndexDB implementation with WebAssembly compiled with Go. 🚧 In Development
json A lightweight JSON wrapper for Go that optimizes WebAssembly binary size. ✅ Ready
jsvalue Efficient conversions between JavaScript and Go for a WebAssembly environment. ✅ Ready
keyring A secure credentials manager using DPAPI. ✅ Ready
kvdb TinyGo–compatible key–value store with a minimal API. ✅ Ready
mcp Go implementation of the Model Context Protocol (MCP). ✅ Ready
mcpserve MCP server for TinyWasm ecosystem. 🚧 In Development
modules Common isomorphic modules for SSR and CSR (WebAssembly) compatible with TinyGo. 🚧 In Development
passkeys Demo/Example of how to add passkeys. 🎨 Design
pdf PDF library designed for web rendering with WebAssembly, optimized for TinyGo compatibility. ✅ Ready
pwa Experimental / Placeholder. 🎨 Design
rbac RBAC implements Role-Based Access Control to manage roles and permissions. ✅ Ready
screenshot Go library to capture desktop to image. ✅ Ready
server Go package that encapsulates the logic for running a development and production server. 🚧 In Development
site Minimal site rendering engine for Go (WASM-friendly). 🚧 In Development
sqlite WebAssembly-first port of modernc.org/sqlite. 🚧 In Development
sse Client and event server, SSE protocol compatible with TinyGo. ✅ Ready
test-permissions Test permissions repository. 🎨 Design
time TinyGo-compatible time package for Go. ✅ Ready
unixid Go library for generating unique, time-based IDs using Unix timestamps. ✅ Ready
user User management library. 🚧 In Development
wasi WASI runtime for tinywasm. 🚧 In Development
wasmbrowsertest Run WASM tests inside your browser. ✅ Ready
wizard Modular, pluggable wizard orchestrator for TinyGo applications. 🚧 In Development

Pinned Loading

  1. fmt fmt Public

    Lightweight Go library that provides comprehensive string manipulation, type conversion, formatting, and error handling with a fluid API, specifically designed for small devices and web application…

    Go 18

  2. app app Public

    Entorno de desarrollo TUI full stack con recarga en vivo, test, despliegue, ci/cd para aplicaciones web (PWA) con Go, WebAssembly y TinyGo.

    Go 3 4

  3. server server Public

    goserver is a Go package that encapsulates the logic for running a development and production server. It automatically manages static file serving, external Go server compilation, hot-reloading, an…

    Go 1 1

  4. time time Public

    TinyGo-compatible time package for Go, using syscall/js on WASM to keep binaries small and leverage native JS time APIs.

    Go 1

  5. dom dom Public

    Ultra-minimal DOM & event toolkit for Go (TinyGo WASM-optimized).

    Go 1

  6. client client Public

    tinywasm is a lightweight toolbox designed to streamline the compilation of Go packages to WebAssembly (WASM) using the TinyGo compiler.

    Go 2

Repositories

Showing 10 of 53 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…