All Projects → AlexStocks → Getty

AlexStocks / Getty

Licence: other
a netty like asynchronous network I/O library based on tcp/udp/websocket; a bidirectional RPC framework based on JSON/Protobuf; a microservice framework based on zookeeper/etcd

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Getty

twjitm-core
采用Netty信息加载实现长连接实时通讯系统,客户端可以值任何场景,支持实时http通讯、webSocket通讯、tcp协议通讯、和udp协议通讯、广播协议等 通过http协议,rpc协议。 采用自定义网络数据包结构, 实现自定义网络栈。
Stars: ✭ 98 (-81.58%)
Mutual labels:  protobuf, tcp, netty, rpc
Easyrpc
EasyRpc is a simple, high-performance, easy-to-use RPC framework based on Netty, ZooKeeper and ProtoStuff.
Stars: ✭ 79 (-85.15%)
Mutual labels:  rpc, rpc-framework, protobuf, netty
Grain
grain是一个极简的、组件式的RPC框架,灵活且适合渐进学习,可与任何框架整合。同时包含(系统通用多线程模型与消息通讯 || 多对多关系的分布式锁 || 基于Servlet的HTTP框架 || 基于系统通用多线程模型的Websocket框架 || 支持行级锁的多线程锁 )等组件,按需选择组件,不绑架开发者。
Stars: ✭ 577 (+8.46%)
Mutual labels:  rpc, rpc-framework, websocket, tcp
Jstp
Fast RPC for browser and Node.js based on TCP, WebSocket, and MDSF
Stars: ✭ 132 (-75.19%)
Mutual labels:  rpc, json, websocket, tcp
Hprose Nodejs
Hprose is a cross-language RPC. This project is Hprose 2.0 for Node.js
Stars: ✭ 297 (-44.17%)
Mutual labels:  rpc, rpc-framework, websocket, tcp
Brpc Java
Java implementation for Baidu RPC, multi-protocol & high performance RPC.
Stars: ✭ 647 (+21.62%)
Mutual labels:  microservice, rpc, protobuf, netty
Shineframe
高性能超轻量级C++开发库及服务器编程框架
Stars: ✭ 274 (-48.5%)
Mutual labels:  json, protobuf, websocket, tcp
Hprose Js
Hprose is a cross-language RPC. This project is Hprose 2.0 RPC for JavaScript
Stars: ✭ 133 (-75%)
Mutual labels:  rpc, rpc-framework, websockets, tcp
Co
Art of C++. Flag, logging, unit-test, json, go-style coroutine and more.
Stars: ✭ 2,264 (+325.56%)
Mutual labels:  rpc, json-rpc, json, tcp
Rpc
Simple RPC style APIs with generated clients & servers.
Stars: ✭ 192 (-63.91%)
Mutual labels:  rpc, json-api, rpc-framework, json-rpc
Jupiter
Jupiter是一款性能非常不错的, 轻量级的分布式服务框架
Stars: ✭ 1,372 (+157.89%)
Mutual labels:  microservice, rpc, rpc-framework, netty
Pudding
Pudding 是一款迷你级分布式服务框架
Stars: ✭ 24 (-95.49%)
Mutual labels:  netty, rpc, rpc-framework
Go Os
Stars: ✭ 185 (-65.23%)
Mutual labels:  microservice, rpc, micro
Go Micro Boilerplate
The boilerplate of the GoLang application with a clear microservices architecture.
Stars: ✭ 147 (-72.37%)
Mutual labels:  microservice, rpc, protobuf
cheshuo
🎃A lightweight game server framework. Based on Springboot and Netty. Using ProtoBuf as communication between client and server.
Stars: ✭ 23 (-95.68%)
Mutual labels:  protobuf, tcp, netty
node-jsonrpc2
JSON-RPC 2.0 server and client library, with HTTP (with Websocket support) and TCP endpoints
Stars: ✭ 103 (-80.64%)
Mutual labels:  tcp, websockets, json-rpc
rony
Fast and Scalable RPC Framework
Stars: ✭ 41 (-92.29%)
Mutual labels:  protobuf, rpc, rpc-framework
Centrifuge
Real-time messaging library for Go with scalability in mind
Stars: ✭ 446 (-16.17%)
Mutual labels:  json, protobuf, websocket
Symfony Jsonapi
JSON API Transformer Bundle for Symfony 2 and Symfony 3
Stars: ✭ 114 (-78.57%)
Mutual labels:  microservice, json-api, json
Saluki
Spring Boot starter module for gRPC framework.
Stars: ✭ 267 (-49.81%)
Mutual labels:  microservice, rpc, rpc-framework

getty

a netty like asynchronous network I/O library

Build Status codecov go.dev reference Go Report Card license

INTRO

Getty is a asynchronous network I/O library in golang. Getty works on tcp/udp/websocket network protocol and supplies a uniform interface.

In getty there are two goroutines in one connection(session), one reads tcp stream/udp packet/websocket package, the other handles logic process and writes response into network write buffer. If your logic process may take a long time, you should start a new logic process goroutine by yourself in codec.go:(Codec)OnMessage.

You can also handle heartbeat logic in codec.go:(Codec):OnCron. If you use tcp/udp, you should send hearbeat package by yourself, and then invoke session.go:(Session)UpdateActive to update its active time. Please check whether the tcp session has been timeout or not in codec.go:(Codec)OnCron by session.go:(Session)GetActive.

Whatever if you use websocket, you do not need to care about hearbeat request/response because Getty do this task in session.go:(Session)handleLoop by sending/received websocket ping/pong frames. You just need to check whether the websocket session has been timeout or not in codec.go:(Codec)OnCron by session.go:(Session)GetActive.

You can get code example in https://github.com/AlexStocks/getty-examples.

RPC

An open source, Go based, RPC framework.

Feature list:

  • 1 Transport: TCP(√), UDP(X), Websocket(X)
  • 2 Codec: ProtoBuf(√), JSON(√)
  • 3 Strategy: Failover(√), Failfast(√)
  • 4 Metrics: Invoke Statistics(X), User Auth(X)

Code example:

The subdirectory rpc of getty-examples shows how to build rpc client/rpc server.

Micro

An micro service framework based on getty/rpc.

Feature list:

  • 1 Registry: ZooKeeper(√), Etcd(√)
  • 2 Load Balance: Random(X), RoundRobin(√), Self-Defined(√)
  • 3 Service Discovery: Service Publish(√), Service Watch(√), Service Notify(√)

Code example:

The subdirectory micro of getty-examples shows how to build micro client/rpc server.

LICENCE

Apache License 2.0

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].