service framework for game server using libatbus, libatapp, libcopp and etc.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


service framework for game server using libatbus, libatapp, libcopp and etc.

Inner Service

  • atproxy : proxy for logic server to communicate with each other

    • using etcd for service discovery and online detection.
  • atgateway : gateway for client to communicate logic server

    • Using DH/ECDH for key establishment(directly send key or no encryption are also supported)
    • Traffic control and handshake timeout available for each client
    • Support for routing switching


  1. libuv -- libuv is a multi-platform support library with a focus on asynchronous I/O.
  2. msgpack-c -- MessagePack is an efficient binary serialization format, and msgpack-c is a c and c++ driver for it.
  3. libiniloader -- a small and lightweight ini loader code.
  4. libcurl -- libcurl is a free and easy-to-use client-side URL transfer library
  5. libcopp -- Cross-platform coroutine library written in c++.
  6. rapidjson -- A fast and header only json library.
  7. flatbuffer -- A simple pack/unpack library. It's used in atgateway's inner protocol.


  1. Install etcd. (It's used for atproxy to connect to each other.)
  2. [opional] Install redis. (DB services.install it if used)

Extern Dependency

  1. libuuid-devel(uuid-dev)
  2. [opional] hiredis, redis (if using redis, full_sample branch has use redis)



  1. cmake 3.7 and above
  2. gcc/clang/msvc
  3. gdb/lldb/windb
  4. git
  5. unzip
  6. tar
  7. autoconf
  8. automake
  9. p7zip
  10. python2/python
  11. etc.

Python modules

  1. python-mako/python*-mako/mingw-w64-x86_64-python*-mako
  2. [optional] python-setuptools/python*-setuptools/mingw-w64-x86_64-python*-mako
  3. [optional] python-pip/python*-pip/mingw-w64-x86_64-python*-pip

Framework Code Tree

  • 3rd_party: all dependency 3rd_party libraries
  • atframework: atframework projects and libraries
  • export: exported libraries, used by client
  • libatframe_utils: framework utility codes
  • libatbus: communication library used between servers
  • libatapp: server application framework, used to build a specified server type
  • services: inner services of atframework
  1. component: inner services common codes
  2. atproxy: proxy server, used to connect difference service group to each other
  3. atgateway: gateway server, used to manage client connections
  • doc: documents
  • install: all resources and configure templates
  • project: project script, used to detect build environment and generate build scripts
  • sample: sample codes to show usage of some libraries
  • src: all real projects
  • echosvr: the simplest server instance, just send back all data receive from client
  • [others]: other services

Logic Code Tree

  • src: all real projects
  • server_frame: server common library
  1. config: server configure defines and excel configure data structures
  2. data: game data layer
  3. dispatcher: decide how to deal with each type of messages and manage coroutine tasks
  4. logic: game logic layer
  5. rpc: all remote procedure call APIs, include server to server message, DB message and so on
  6. utility: all shared utility codes
  • tools: tool projects

Basic Usage


You need to prebuilt all dependency libraries such as openssl/mbedtls, libcurl, libuv and so on. Then run


Please see 3rd_party to see which libraries is required.

Unix like system

sh [options] ...

Such as sh -su to enable all unit test and samples, or sh -a to use clang-analysis. You can also directly run cmake [SOURCE PATH] [options...] just like in windows, use your own prebuilt libraries or not. It depends to you.