tokamak
by
tokamakui

Description: [Looking for active maintainers] SwiftUI-compatible framework for building browser apps with WebAssembly and native apps for other platforms

View on GitHub ↗

Summary Information

Updated 2 hours ago
Added to GitGenius on July 5th, 2026
Created on September 15th, 2018
Open Issues & Pull Requests: 127 (+0)
GitHub issues: Enabled
Number of forks: 126
Total Stargazers: 2,843 (+0)
Total Subscribers: 51 (+0)

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 753 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: N/A
Mean response time: 1.3 hours
90th percentile: 2.6 hours
Tracked items: 2

Most active contributors

Detailed Description

Tokamak is a SwiftUI-compatible framework written in Swift that enables developers to build browser applications using WebAssembly and native applications for other platforms. The repository is currently seeking active maintainers. The framework implements a subset of SwiftUI APIs with a DOM renderer that supports various view types and modifiers, with a long-term goal of implementing as much of the SwiftUI API as possible while providing additional utilities for HTML and CSS interactions.

The framework uses TokamakShim as its primary import mechanism, which makes views compatible with both Apple platforms and platforms supported by Tokamak, currently WebAssembly and WASI with plans for additional platforms in the future. Developers can write code that closely resembles standard SwiftUI syntax while targeting web browsers. The repository includes an HTML view for constructing arbitrary HTML and a DynamicHTML view that supports event listeners for handling DOM events like onclick and onmouseover. This flexibility allows developers to inject arbitrary scripts and styles through direct DOM access, enabling integration with libraries like Semantic UI and moment.js.

Tokamak features a Fiber reconciler modeled after React's Fiber architecture, which is optionally available and can provide faster updates and support larger view hierarchies. The Fiber reconciler also includes layout steps designed to match SwiftUI layouts more closely than CSS approximations, though not all views and view modifiers are currently supported by this renderer.

The development requirements include macOS 11 with Xcode 13.2 or later for app developers, with macOS 12 and Xcode 13.3 recommended for better auto-completion and multi-platform development. Linux users need Swift 5.6 or later on Ubuntu 18.04 or 20.04. The build tool carton 0.15.x is required for development. Browser support includes Edge 84+, Firefox 79+, Chrome 84+, Desktop Safari 14.1+, and Mobile Safari 14.8+, with older browser versions supported through compilation with the JAVASCRIPTKIT_WITHOUT_WEAKREFS flag.

According to GitGenius activity tracking, the repository shows strong responsiveness with a median issue and pull request response latency of 0.0 hours and a mean of 1.3 hours across tracked items. The most active contributors tracked include Sammcb with 2 events, ahti with 1 event, and carson-katri with 1 event. Bug reports represent the most active issue label category. The repository overlaps with contributors from swiftlang/swift and kubernetes-sigs/external-dns, indicating cross-project collaboration within the Swift ecosystem.

The framework includes built-in security features with HTML control character escaping in Text views by default, with options to override this behavior using the _domTextSanitizer modifier. Developers can apply custom sanitizers as String to String closures. The repository provides comprehensive documentation including a progress document tracking implemented APIs, a FAQ section, and a contributing guide. Getting started involves installing carton via Homebrew, initializing a project from a template, and running carton dev to start a development server with hot reloading capabilities. The project maintains a Discord server for community engagement and follows the Contributor Covenant Code of Conduct.

tokamak
by
tokamakuitokamakui/tokamak

Repository Details

Fetching additional details & charts...