VVDevKit is a Metal-based rendering framework for macOS and iOS with batteries included. It provides production-oriented modules for code editing, diff rendering/review, markdown rendering, syntax highlighting, and timeline-style UI, all built on top of a shared primitives layer.
Built for Aizen.win.
Status: VVDevKit is early and under active development. Public APIs, module boundaries, and package structure can change.
VVDevKit(umbrella module)VVCode(Metal-based code editor + diff UI surfaces)VVMarkdown(Metal-based markdown renderer)VVMetalPrimitives(scene graph, primitives, and layout/view composition)VVHighlighting(Tree-sitter syntax highlighting)VVGit(git parsing/integration helpers, including unified diff parsing)VVLSP(Language Server Protocol integration)VVChatTimeline(timeline/chat UI module built on VVMarkdown + primitives)VVDiffcapability surface (viaVVDiffView/VVMultiBufferDiffViewinVVCodeandVVDiffParser/VVDiffHunkinVVGit)
VVDevKit is layered:
VVMetalPrimitivesis the rendering substrate (primitives, scene, layout/view composition).- Feature modules (
VVCode,VVMarkdown,VVChatTimeline) build on top of primitives. - Support modules (
VVHighlighting,VVGit,VVLSP) provide language and tooling integration. VVDevKitre-exports the batteries-included surface for convenient adoption.
See Docs/Architecture.md for module boundaries, dependency rules, and extraction phases.
- macOS 13+ / iOS 13+
- Swift 5.9+
Add the package:
dependencies: [
.package(url: "https://github.com/vivy-company/VVDevKit", from: "0.1.0")
]Use the umbrella product:
.target(
name: "YourApp",
dependencies: [
.product(name: "VVDevKit", package: "VVDevKit")
]
)Then import:
import VVDevKitYou can also depend on individual products (VVCode, VVMarkdown, VVMetalPrimitives, VVChatTimeline) if you want a narrower integration.
Diff support is first-class in VVDevKit.
VVDiffView(VVCode): Metal-backed unified/split diff renderer.VVMultiDiffDocument+VVMultiBufferDiffView(VVCode): multi-file diff projection and review surface.VVDiffParser+VVDiffHunk(VVGit): parse unified diff text and map line-level change status.
Today this is shipped as VVCode/VVGit APIs (not a separate Swift package product named VVDiff).
Language grammars are built as dynamic libraries and loaded on demand.
swift build --product TreeSitterSwift
swift build --product TreeSitterPython
swift build --product TreeSitterRustBundle the generated .dylib files in your app's Frameworks folder.
- Keep VVDevKit as the batteries-included framework in this repository.
- Keep
VVMetalPrimitivesas the core substrate and continue hardening boundaries. - Extract primitives/pipelines into a separate Swift package (and potentially separate repo) when boundaries are stable.
GPL-3.0