GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - embed-zig/embed-zig: Zig libraries for embedded development — HAL, SAL, ESP-IDF bindings, desktop simulation

BranchesTags
Open more actions menu

Latest commit

 

History

272 Commits
272 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
apps
apps
 
 
bk
bk
 
 
build
build
 
 
desktop
desktop
 
 
docs
docs
 
 
embed
embed
 
 
esp
esp
 
 
examples
examples
 
 
glib
glib
 
 
gstd
gstd
 
 
openapi-codegen
openapi-codegen
 
 
tests
tests
 
 
thirdparty
thirdparty
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
AGENTS.md
AGENTS.md
 
 
README.md
README.md
 
 
build.zig
build.zig
 
 
build.zig.zon
build.zig.zon
 
 

Repository files navigation

embed-zig

CI

embed-zig is a collection of portable Zig libraries for embedded and host targets. Its runtime layer provides injectable platform backends so the same code can run in tests, on desktop targets, and on embedded systems.

Modules

  • glib: portable library implementations and runtime contracts
  • gstd: std-backed host compatibility layer
  • embed: embedded implementation namespace
  • thirdparty/*: explicitly exported third-party modules such as lvgl, mbedtls, opus, and platform packages

Requirements

  • Zig 0.15.2

Use As A Dependency

const dep = b.dependency("embed_zig", .{
    .target = target,
    .optimize = optimize,
});

const glib = dep.module("glib");
const gstd = dep.module("gstd");
const embed = dep.module("embed");
const core_bluetooth = dep.module("core_bluetooth");
const core_wlan = dep.module("core_wlan");
const lvgl = dep.module("lvgl");
const lvgl_osal = dep.module("lvgl_osal");
const mbedtls = dep.module("mbedtls");
const opus = dep.module("opus");
const portaudio = dep.module("portaudio");
const speexdsp = dep.module("speexdsp");
const stb_truetype = dep.module("stb_truetype");

The package name is embed_zig. The top-level package exposes core modules glib, gstd, and embed, plus thirdparty modules exported directly from the thirdparty package dependency: core_bluetooth, core_wlan, lvgl, lvgl_osal, mbedtls, opus, portaudio, speexdsp, and stb_truetype. The embed namespace contains bt, drivers, motion, audio, ledstrip, and zux.

Task Runtime

glib.task is the portable execution-unit contract used by runtime and application code. It is designed as a goroutine-like API:

const handle = try grt.task.go(
    "audio/processor",
    .{ .min_stack_size = 24 * 1024 },
    glib.task.Routine.init(&state, processLoop),
);
handle.join();

Business code names the work it wants to run and does not choose FreeRTOS task fields, pthread details, CPU affinity, priority, allocators, or PSRAM policy directly. The task name is routed to a platform or board-owned handler, and that handler owns the concrete resource policy.

Options.min_stack_size is the task call site's lower-bound stack requirement, not a board policy decision or registry field. Each task.go call should pass the smallest known stack requirement for that task. Board handlers forward or satisfy it while choosing platform resources such as core, priority, allocator, or memory capabilities, and may group multiple task names under one prefix policy.

This gives the project two important boundaries:

  • resource allocation is centralized in platform or board policy
  • business logic stays separate from BSP-specific task setup

See docs/task-runtime.md for the current task name registry and board-owned policies.

Build And Test

zig build
zig build test

Package Docs

  • glib/README.md
  • gstd/README.md
  • embed/lib/bt/README.md
  • embed/lib/drivers/README.md
  • embed/lib/zux/README.md
  • thirdparty/pkg/core_bluetooth/README.md
  • thirdparty/pkg/core_wlan/README.md
  • thirdparty/pkg/lvgl/README.md
  • thirdparty/pkg/mbedtls/README.md
  • thirdparty/pkg/opus/README.md
  • thirdparty/pkg/portaudio/README.md
  • thirdparty/pkg/speexdsp/README.md
  • thirdparty/pkg/stb_truetype/README.md

Contributing

Read docs/CODE_OF_CONDUCT.md and AGENTS.md before editing the repository.

About

Zig libraries for embedded development — HAL, SAL, ESP-IDF bindings, desktop simulation

Topics

embeddedesp32zig

Resources

Readme

Code of conduct

Code of conduct
Activity
Custom properties

Stars

1 star

Watchers

0 watching

Forks

1 fork
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.