All Projects → Sandertv → Go Raknet

Sandertv / Go Raknet

Licence: mit
An idiomatic Go library implementing a basic version of the RakNet protocol.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Go Raknet

Node Minecraft Protocol
Parse and serialize minecraft packets, plus authentication and encryption.
Stars: ✭ 697 (+1642.5%)
Mutual labels:  server, network, client
Ether.network
https://github.com/Eastrall/Sylver
Stars: ✭ 147 (+267.5%)
Mutual labels:  server, network, client
Simplenet
An easy-to-use, event-driven, asynchronous network application framework compiled with Java 11.
Stars: ✭ 164 (+310%)
Mutual labels:  server, network, client
Clientserverproject
一个C-S模版,该模版由三部分的程序组成,一个服务端运行的程序,一个客户端运行的程序,还有一个公共的组件,实现了基础的账户管理功能,版本控制,软件升级,公告管理,消息群发,共享文件上传下载,批量文件传送功能。具体的操作方法见演示就行。本项目的一个目标是:提供一个基础的中小型系统的C-S框架,客户端有三种模式,无缝集成访问,winform版本,wpf版本,asp.net mvc版本,方便企业进行中小型系统的二次开发和个人学习。同时网络组件方便的支持读写三菱和西门子PLC的数据,详细见Readme
Stars: ✭ 873 (+2082.5%)
Mutual labels:  server, network, client
Zserver4d
ZServer4D 是一套从商业项目剥离而出的云服务器中间件,可以承载百万级的分布式负载服务,并且支持IoT及内网穿透
Stars: ✭ 199 (+397.5%)
Mutual labels:  server, network, client
Awesome Openapi3
😎 A list of awesome projects related to OpenAPI 3.0.x, curated by the community
Stars: ✭ 469 (+1072.5%)
Mutual labels:  server, client
Katanaframework
The New Hacking Framework
Stars: ✭ 502 (+1155%)
Mutual labels:  network, client
Milo
Eclipse Milo™ - an open source implementation of OPC UA (IEC 62541).
Stars: ✭ 587 (+1367.5%)
Mutual labels:  server, client
Go Smtp
📤 An SMTP client & server library written in Go
Stars: ✭ 655 (+1537.5%)
Mutual labels:  server, client
Vibora
Fast, asynchronous and elegant Python web framework.
Stars: ✭ 5,734 (+14235%)
Mutual labels:  server, client
Simple Websocket Server
A very simple, fast, multithreaded, platform independent WebSocket (WS) and WebSocket Secure (WSS) server and client library implemented using C++11, Boost.Asio and OpenSSL. Created to be an easy way to make WebSocket endpoints in C++.
Stars: ✭ 685 (+1612.5%)
Mutual labels:  server, client
Blacksheep
Fast ASGI web framework and HTTP client for Python asyncio
Stars: ✭ 450 (+1025%)
Mutual labels:  server, client
Node Bluetooth Serial Port
Serial I/O over bluetooth for NodeJS
Stars: ✭ 444 (+1010%)
Mutual labels:  server, client
Live Torrent
Torrent Web Client
Stars: ✭ 546 (+1265%)
Mutual labels:  server, client
Networksocket
NetworkSocket是一个以中间件(middleware)扩展通讯协议,以插件(plug)扩展服务器功能的支持SSL安全传输的通讯框架;目前支持http、websocket、fast、flex策略与silverlight策略协议。
Stars: ✭ 435 (+987.5%)
Mutual labels:  server, client
Happypandax
A cross-platform server and client application for managing and reading manga and doujinshi
Stars: ✭ 432 (+980%)
Mutual labels:  server, client
Vssh
Go Library to Execute Commands Over SSH at Scale
Stars: ✭ 707 (+1667.5%)
Mutual labels:  server, network
Vertx Web
HTTP web applications for Vert.x
Stars: ✭ 853 (+2032.5%)
Mutual labels:  server, client
Zeus
A high performance, cross-platform Internet Communication Engine. Developed with native socket API. Aim at handling millions of concurrent connections.
Stars: ✭ 30 (-25%)
Mutual labels:  server, client
Mumble
Mumble is an open-source, low-latency, high quality voice chat software.
Stars: ✭ 4,418 (+10945%)
Mutual labels:  server, client

go-raknet

go-raknet is a library that implements a basic version of the RakNet protocol, which is used for Minecraft (Bedrock Edition). It implements Unreliable, Reliable and ReliableOrdered packets and sends user packets as ReliableOrdered.

go-raknet attempts to abstract away direct interaction with RakNet, and provides simple to use, idiomatic Go API used to listen for connections or connect to servers.

Getting started

Prerequisites

To use this library, Go must be installed. go-raknet does not depend on any other libraries than the standard Go library.

Usage

go-raknet can be used for both clients and servers, (and proxies, when combined) in a way very similar to the standard net.TCP* functions.

Basic RakNet server:

package main

import (
	"github.com/sandertv/go-raknet"
)

func main() {
    listener, _ := raknet.Listen("0.0.0.0:19132")
    defer listener.Close()
    for {
        conn, _ := listener.Accept()
        
        b := make([]byte, 1024*1024*4)
        _, _ = conn.Read(b)
        _, _ = conn.Write([]byte{1, 2, 3})
        
        conn.Close()
    }
}

Basic RakNet client:

package main

import (
	"github.com/sandertv/go-raknet"
)

func main() {
    conn, _ := raknet.Dial("mco.mineplex.com:19132")
    defer conn.Close()
    
    b := make([]byte, 1024*1024*4)
    _, _ = conn.Write([]byte{1, 2, 3})
    _, _ = conn.Read(b)
}

Documentation

PkgGoDev

Contact

Chat on Discord

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].