| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
|
Warning
|
Name disambiguation — three things were called "vext". They are unrelated.
If you want the verification protocol spec → go to hyperpolymath/vext. |
image:[Rust 1.70+] image:[Deno 1.40+] image:[RSR Compliance]
vext is a high-performance IRC notification daemon for version control systems. It provides real-time commit notifications from Git repositories to IRC channels, with connection pooling to eliminate join/leave spam.
This is a modernized rewrite of the original irker by Eric S. Raymond, built with:
Rust - High-performance async daemon with memory safety
Deno/TypeScript - Modern hook scripts and CLI tools
Async I/O: Built on Tokio for efficient handling of thousands of connections
Connection Pooling: Maintains persistent IRC connections, eliminating join/leave spam
TLS Support: Secure connections to IRC servers (enabled by default)
Rate Limiting: Built-in flood protection with token bucket algorithm
Multi-Target: Send notifications to multiple channels/servers simultaneously
JSON Protocol: Simple, language-agnostic notification format
Color Support: Optional mIRC color codes for enhanced visibility
┌─────────────────┐ JSON/TCP ┌─────────────────┐
│ Git Hook │ ───────────────▶ │ vextd │
│ (Deno/TS) │ │ (Rust) │
└─────────────────┘ └────────┬────────┘
│
┌─────────┴─────────┐
│ Connection Pool │
└─────────┬─────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ IRC #ch1 │ │ IRC #ch2 │ │ IRC #ch3 │
└──────────┘ └──────────┘ └──────────┘# Clone the repository
git clone https://github.com/Hyperpolymath/vext.git
cd vext
# Build everything
just build
# Or build components separately
cargo build --release # Rust daemon
cd vext-tools && deno check src/**/*.ts # Deno tools# Start daemon (listens on 127.0.0.1:6659 by default)
./target/release/vextd
# Start with custom settings
./target/release/vextd --listen 0.0.0.0:6659 --default-server irc.libera.chat
# Debug mode
./target/release/vextd -vv# Install hook to a repository
cd /path/to/your/repo
deno run --allow-read --allow-write \
https://raw.githubusercontent.com/Hyperpolymath/vext/main/vext-tools/src/hooks/install.ts
# Configure the hook
export VEXT_TARGETS="ircs://irc.libera.chat/your-channel"
export VEXT_PROJECT="your-project"| Option | Description | Default |
|---|---|---|
--listen |
Listen address |
127.0.0.1:6659 |
--default-server |
Default IRC server |
irc.libera.chat |
--default-port |
Default IRC port |
6697 |
--tls |
Enable TLS |
true |
--max-connections |
Max connections per server |
4 |
--nick |
Bot nick prefix |
vext |
-v, -vv |
Verbose logging |
INFO |
Send JSON notifications to the daemon over TCP:
{
"to": ["ircs://irc.libera.chat/channel1", "irc://irc.oftc.net/channel2"],
"privmsg": "[project] main abc1234 dev: Add new feature",
"project": "myproject",
"branch": "main",
"commit": "abc1234",
"author": "developer",
"url": "https://github.com/user/repo/commit/abc1234",
"colors": "mirc"
}# Run tests
just test
# Format code
just format
# Lint
just lint
# Full validation
just validatevext/ ├── vext-core/ # Rust daemon │ ├── src/ │ │ ├── main.rs # Entry point │ │ ├── config.rs # Configuration │ │ ├── irc_client.rs# IRC protocol │ │ ├── listener.rs # TCP/UDP listener │ │ ├── pool.rs # Connection pooling │ │ └── protocol.rs # Notification types │ └── Cargo.toml ├── vext-tools/ # Deno hooks & tools │ ├── src/ │ │ └── hooks/ │ │ ├── git.ts # Git post-receive hook │ │ └── install.ts │ └── deno.json └── Justfile # Build automation
This project is licensed under the Mozilla Public License, v. 2.0. See the LICENSE file for details.
SPDX-License-Identifier: CC-BY-SA-4.0
Original irker by Eric S. Raymond
Modernized by the vext contributors
| Back | FazBrowse Home | New Git URL |