Skip to main content

Core

Snider Labs
Go DI Wails Framework SDK

A Web3 framework where modules plug in cleanly - each brings a custom HTML element plus API routes, all namespaced automatically. Security boundaries between services are controlled through closed IPC channels (only the services you specify can talk to each other). Pair it with Enchantrix and Borg for end-to-end encryption.

Features

Module Runtime

Load modules into Core - each module brings a custom element + Gin routes, namespaced into app API

Closed IPC Channels

Create security boundaries between scoped services - controlled inter-service communication

WebView2 Bindings

DI-exported interfaces in JS global scope - coroutine-speed native access, no Electron IPC tax

Service Container

Named registry with type-safe ServiceFor[T]() and MustServiceFor[T]() access

E2E Security Stack

Enchantrix for encryption, Borg for secure containers - full E2E when combined

Zero Wiring SDK

npm package (coming) lets PWAs tap native controls without manual binding

Installation

# Go 1.25+ workspace
go get github.com/Snider/Core

# Development tasks
task gui:dev    # Wails dev mode with hot reload
task cli:build  # Build CLI binary
task check      # Lint + test + review

Usage

Module Architecture

Module = Custom HTML Element + Gin Routes
         ↓ Load into Core
Routes namespaced → /api/v1/module-name/*
Element renders  → <module-name-dashboard></module-name-dashboard>
         ↓ Collective unit
Multiple modules = composable app functionality

Closed IPC Security Boundaries

// Create scoped channel between services
channel := core.NewClosedIPC("crypto-service", "storage-service")

// Only these services can communicate on this channel
channel.Send(core.Message{Type: "encrypt", Data: payload})

// External services cannot intercept or inject

Module Loading

core, err := core.New(
    core.WithModule(mining.Module),   // Adds /api/v1/mining/* routes
    core.WithModule(wallet.Module),   // Adds /api/v1/wallet/* routes
    core.WithServiceLock(),           // Lock after init
)

E2E Stack Integration

Enchantrix → Pre-obfuscation before CPU encryption (Ring-3 safe)
Borg       → Secure containers for module packaging
Core       → Closed IPC channels between services
LTHN       → Consent-gated network transport

Result: E2E encrypted from storage to wire

More from Snider Labs

View all projects →

Fancy helping out?

Spotted a bug? Got an idea? We'd love to hear from you.

Read the contributing guide →