https://github.com/emperor42/veni
Veni (Latin for "I come") is a lightweight, zero-dependency Go middleware designed to automatically discover and inject vanilla JavaScript web components into HTML templates served via the standard net/http FileServer.
https://github.com/emperor42/veni
componets foss javascript web
Last synced: 2 months ago
JSON representation
Veni (Latin for "I come") is a lightweight, zero-dependency Go middleware designed to automatically discover and inject vanilla JavaScript web components into HTML templates served via the standard net/http FileServer.
- Host: GitHub
- URL: https://github.com/emperor42/veni
- Owner: emperor42
- License: mit
- Created: 2023-06-06T15:12:42.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2026-03-26T18:04:26.000Z (3 months ago)
- Last Synced: 2026-03-27T07:42:31.843Z (3 months ago)
- Topics: componets, foss, javascript, web
- Language: Go
- Homepage:
- Size: 71.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# VENI
**Veni** (Latin for "I come") is a lightweight, zero-dependency Go middleware designed to automatically discover and inject vanilla JavaScript web components into HTML templates served via the standard `net/http` FileServer.
Built strictly with the Go standard library, VENI bridges the gap between static XML/HTML templates and dynamic web components without requiring a build step or external templating engine.
## Features
- **Zero Dependencies**: Uses only `net/http`, `os`, `path/filepath`, and `regexp`.
- **Automatic Discovery**: Scans a designated directory for `.js` files and registers custom elements.
- **Smart Injection**: Detects custom element usage in templates and injects the necessary `` tags before `</head>` or `</body>`.
- **Composable**: Designed to be layered with other middlewares (e.g., VIDI for data, VICI for context).
- **Standard Library Only**: No external imports.
## Installation
```bash
go get github.com/Emperor42/veni