Skip to content
/ getty Public
forked from apache/dubbo-getty

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

License

Notifications You must be signed in to change notification settings

u0x01/getty

This branch is 319 commits behind apache/dubbo-getty:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

070dca7 · May 23, 2019
Nov 21, 2018
Mar 27, 2019
Oct 17, 2018
Aug 8, 2018
Apr 6, 2019
Oct 18, 2018
May 23, 2019
May 23, 2019
Mar 18, 2018
May 22, 2019
May 23, 2019
May 23, 2019
May 23, 2019
May 21, 2019
May 23, 2019
May 23, 2019
May 23, 2019
Oct 16, 2018

Repository files navigation

getty

a netty like asynchronous network I/O library

INTRO

Getty is a asynchronous network I/O library in golang. Getty is based on "ngo" whose author is sanbit. 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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%