gtenet
v0.1.5
Published
Node.js bindings for the ENet reliable UDP networking library
Downloads
34
Maintainers
Readme
🌐 GTEnet
A high-performance Node.js binding for the ENet reliable UDP networking library. Built specifically for Growtopia private server development with modern JavaScript APIs. 🚀
[!WARNING] This project is in early development. Expect breaking changes and limited features. Use at your own risk! Tested on:
- Linux ( Arch Linux )
- Windows ( MSVC & MSYS2 )
- MacOS ( Soon )
📋 Requirements
# Node.js 18.x
# Python 3.1x📦 Installation
npm install gtenetor with Bun:
bun add gtenet
# you might get message blocked postinstall, you can run it manually
bun pm trust gtenet🚀 Quick Start
Running the Examples
Start a server:
node run example/server
# or
bun run example/serverIn another terminal, start a client:
node run example/client
# or
bun run example/client📖 Basic Usage
🖥️ Server Example
import { Server } from 'gtenet';
// Create a server with automatic port checking
const server = await Server.create({
ip: '127.0.0.1', // Server IP address
port: 17091, // Server port
maxPeer: 32, // Maximum connected clients
});
// Set up event handlers with chaining
server
.on('connect', event => {
console.log('🎉 Client connected:', event.peer);
})
.on('disconnect', event => {
console.log('👋 Client disconnected:', event.peer);
})
.on('receive', event => {
console.log('📨 Received:', event.data.toString());
// Echo the message back
server.send(event.peer, 0, `Echo: ${event.data.toString()}`);
})
.on('error', err => {
console.error('❌ Server error:', err.message);
});
// Start listening for connections
await server.listen();💻 Client Example
import { Client } from 'gtenet';
// Create a client
const client = new Client({
ip: '127.0.0.1', // Server IP
port: 17091, // Server port
});
// Set up event handlers
client
.on('connect', event => {
console.log('🔗 Connected to server!');
client.send(0, 'Hello Server! 👋');
})
.on('disconnect', event => {
console.log('💔 Disconnected from server');
})
.on('receive', event => {
console.log('📩 Server says:', event.data.toString());
})
.on('error', err => {
console.error('❌ Client error:', err.message);
});
// @note connect and start event loop
await client.connect();📄 License
This project is licensed under the MIT License. See LICENSE for more information.
🙏 Acknowledgements
- 🌐 ENet - ENet reliable UDP networking library
- ⚙️ Node-Addon-API - Node.js addon API for native modules
- 🌱 growtopia.js - High-performance Growtopia private server framework
�📢 Special Thanks
Thanks to these people
