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 )
# Node.js 18.x
# Python 3.1x
npm install gtenet
or with Bun:
bun add gtenet
# you might get message blocked postinstall, you can run it manually
bun pm trust gtenet
Start a server:
node run example/server
# or
bun run example/server
In another terminal, start a client:
node run example/client
# or
bun run example/client
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();
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();
This project is licensed under the MIT License. See LICENSE for more information.
- π ENet - ENet reliable UDP networking library
- βοΈ Node-Addon-API - Node.js addon API for native modules
- π± growtopia.js - High-performance Growtopia private server framework
Thanks to these people