giztoy

giztoy

A toy framework for building AI-powered applications across all dimensions.

Stars: 218

Visit
 screenshot

Giztoy is a multi-language framework designed for building AI toys and intelligent applications. It provides a unified abstraction layer that spans from resource-constrained embedded systems to powerful cloud services. With features like native support for ESP32 and other MCUs, cross-platform app development, a unified build system with Bazel, an agent framework for AI agents, audio processing capabilities, support for various Large Language Models, real-time models with WebSocket streaming, secure transport protocols, and multi-language implementations in Go, Rust, Zig, and C/C++, Giztoy serves as a versatile tool for developing AI-powered applications across different platforms and devices.

README:

Giztoy

A toy framework for building AI-powered applications across all dimensions.

From embedded devices to cloud agents, from audio streams to video feeds,
connecting every Large Language Model the universe has to offer.

Build Docs

Documentation Β· Examples Β· δΈ­ζ–‡


πŸ“š Documentation

Start here! Preview the documentation locally:

# Clone and enter the repository
git clone https://github.com/haivivi/giztoy.git
cd giztoy

# Serve documentation locally (requires Bazel)
bazel run //pages:serve-local

# Then open http://localhost:3000/docs/ in your browser

Or visit the online documentation: https://haivivi.github.io/giztoy/docs/


Overview

Giztoy is a multi-language framework designed for building AI toys and intelligent applications. It provides a unified abstraction layer that spans from resource-constrained embedded systems to powerful cloud services.

Think of it as a bridge β€” not between worlds, but between possibilities.

Key Features

  • πŸ”Œ Embedded First β€” Native support for ESP32, nRF, and other MCUs
  • πŸ“± Cross-Platform Apps β€” Build for Android, iOS, and HarmonyOS
  • πŸ—οΈ Unified Build System β€” Bazel compiles everything: mobile apps, MCU firmware, Linux services
  • πŸ€– Agent Framework β€” GenX provides a unified interface for AI agents
  • πŸŽ™οΈ Audio Processing β€” Opus, MP3, PCM encoding/decoding with real-time streaming
  • 🎬 Video Support β€” Coming soon
  • 🌐 Universal LLM Support β€” OpenAI, Gemini, Claude, MiniMax, DashScope, Doubao, and more
  • ⚑ Realtime Models β€” WebSocket-based streaming for voice and multimodal AI
  • πŸ” Secure Transport β€” MQTT for IoT, Noise Protocol + KCP for real-time audio/video
  • πŸ”§ Multi-Language β€” Go, Rust, Zig, and C/C++ implementations

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    AI Application Layer                      β”‚
β”‚                 GenX Β· Speech Β· ChatGear                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                     API Client Layer                         β”‚
β”‚    OpenAI Β· Gemini Β· Claude Β· MiniMax Β· DashScope Β· Doubao  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                   Communication Layer                        β”‚
β”‚           MQTT0 Β· WebSocket Β· Noise Protocol + KCP          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                  Audio Processing Layer                      β”‚
β”‚              Opus Β· MP3 Β· PCM Β· Resampler                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                    Foundation Layer                          β”‚
β”‚            Buffer Β· Encoding Β· Trie Β· CLI                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Quick Start

# Clone the repository
git clone https://github.com/haivivi/giztoy.git
cd giztoy

# Build with Bazel
bazel build //...

# Or use native toolchains
cd go && go build ./cmd/...
cd rust && cargo build --release

Supported Platforms

All platforms built with Bazel β€” one build system to rule them all.

Platform Status Notes
Linux βœ… Full support
macOS βœ… Full support
Android βœ… Bazel + rules_android
iOS βœ… Bazel + rules_apple
HarmonyOS βœ… Bazel + custom rules
ESP32 🚧 Bazel + esp-idf
nRF / BLE MCUs 🚧 Coming soon
Other Linux-based βœ… OpenWrt, Yocto, etc.

Why Go + Rust + Zig?

Go for simplicity, Rust for performance, Zig for the edge. Each has its strengths.

  • Go β€” Rapid prototyping, CLI tools, server applications
  • Rust β€” Embedded systems, performance-critical audio/video processing, reliability
  • Zig β€” Coming soon, for bare-metal and extreme resource constraints

In Giztoy, nearly every module provides multiple language implementations. The choice is yours.

Documentation

Full documentation: https://haivivi.github.io/giztoy/docs/

License

Apache License 2.0


"I'm just a toymaker."

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for giztoy

Similar Open Source Tools

For similar tasks

For similar jobs