All Projects → nebula-chat → Chatengine

nebula-chat / Chatengine

Licence: apache-2.0
Open source mtproto server written in golang with compatible telegram client

Programming Languages

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

Projects that are alternatives of or similar to Chatengine

Telegramd
Unofficial open source telegram server written in golang
Stars: ✭ 609 (+11.95%)
Mutual labels:  telegram, im, mtproto
Mtproto
Telegram MTProto and its proxy (over gRPC) in Go (golang). API Layer: 71
Stars: ✭ 133 (-75.55%)
Mutual labels:  grpc, telegram, mtproto
Im service
golang im server
Stars: ✭ 1,694 (+211.4%)
Mutual labels:  chat, im, server
Telegramapiserver
Fast, simple, async php telegram api server: MadelineProto + Amp HTTP Server
Stars: ✭ 152 (-72.06%)
Mutual labels:  microservice, telegram, mtproto
Chat
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
Stars: ✭ 8,238 (+1414.34%)
Mutual labels:  grpc, chat, telegram
Yivnet
Yivnet is a microservice game server base on go-kit
Stars: ✭ 237 (-56.43%)
Mutual labels:  microservice, grpc, server
Ejabberd
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
Stars: ✭ 5,077 (+833.27%)
Mutual labels:  chat, server
Go Project Sample
Introduce the best practice experience of Go project with a complete project example.通过一个完整的项目示例介绍Go语言项目的最佳实践经验.
Stars: ✭ 344 (-36.76%)
Mutual labels:  microservice, grpc
Grapi
😮 A surprisingly easy API server and generator in gRPC and Go
Stars: ✭ 364 (-33.09%)
Mutual labels:  microservice, grpc
Viper
Viper 是一个基于Anno微服务引擎开发的Dashboard项目、示例项目。Anno 底层通讯采用 grpc、thrift。自带服务发现、调用链追踪、Cron 调度、限流、事件总线等等
Stars: ✭ 402 (-26.1%)
Mutual labels:  microservice, grpc
Kanary
A minimalist web framework for building REST APIs in Kotlin/Java.
Stars: ✭ 319 (-41.36%)
Mutual labels:  microservice, server
Hyperf
🚀 A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease.
Stars: ✭ 4,206 (+673.16%)
Mutual labels:  microservice, grpc
Messenger Ios Chat Swift Firestore
Messenger Clone - Real-time iOS Chat with Firebase Firestore written in Swift
Stars: ✭ 405 (-25.55%)
Mutual labels:  chat, telegram
Furan
Scale out Docker builds
Stars: ✭ 339 (-37.68%)
Mutual labels:  microservice, grpc
React Native Chat Demo
网易云信IM示例
Stars: ✭ 325 (-40.26%)
Mutual labels:  chat, im
Awesome Telegram Chats
Stars: ✭ 347 (-36.21%)
Mutual labels:  chat, telegram
Oim Fx
OIM是采用 Java平台开发的一套即时通讯聊天系统,献给对即时通讯有兴趣的朋友。服务端实现了TCP Socket和WebSocket。方便接入网页版、安卓、IOS、PC桌面版客户端。OIM已经实现桌面版客户端,可以跨平台Windows、mac、Linux使用,用于公司内网、外网通讯、客服系统等,聊天系统。OIM项目可用于任何商业、个人作品中并且希望能够保留作者信息。如果OIM能够帮助到您,请点赞好评,加个星
Stars: ✭ 324 (-40.44%)
Mutual labels:  chat, im
Groupbutler
This bot can help you in managing your group with rules, anti-flood, description, custom triggers, and much more!
Stars: ✭ 399 (-26.65%)
Mutual labels:  chat, telegram
Ssh Chat
Chat over SSH.
Stars: ✭ 4,512 (+729.41%)
Mutual labels:  chat, server
Messenger
Open source, native iOS Messenger, with realtime chat conversations (full offline support).
Stars: ✭ 4,264 (+683.82%)
Mutual labels:  chat, telegram

NebulaChat - Open source mtproto server written in golang

open source mtproto server implemented in golang with compatible telegram client.

Introduce

Open source mtproto server written in golang

Architecture

Architecture

Documents

Diffie–Hellman key exchange

Creating an Authorization Key

Mobile Protocol: Detailed Description (v.1.0, DEPRECATED)

Encrypted CDNs for Speed and Security Translate By @steedfly

Windows-Build By @robinfoxnan

Quick start with Docker

  1. Install docker and docker-compose
  2. Edit docker-compose.yml: replace CHATENGINE_HOST to your own host IP
  3. Run make command in your shell.
  4. Now, Chatengine is running on your host port 12345.

Docker run demo

git clone https://github.com/nebula-chat/chatengine
cd chatengine
# replace 192.168.1.100 to you own host IP.
sed -i "" 's/CHATENGINE_HOST=127.0.0.1/CHATENGINE_HOST=192.168.1.100/g' docker-compose.yml # macOS
# sed -i 's/CHATENGINE_HOST=127.0.0.1/CHATENGINE_HOST=192.168.1.100/g' docker-compose.yml # linux
make

Manual Build and Install

Depends

  • redis
  • mysql
  • etcd

Build

  • Get source code
mkdir -p $GOPATH/src/github.com/nebula-chat/
cd $GOPATH/src/github.com/nebula-chat/
git clone https://github.com/nebula-chat/chatengine.git

  • Build

    # build frontend
        cd $GOPATH/src/github.com/nebula-chat/chatengine/access/frontend
        go build
    
    # build auth_key
        cd $GOPATH/src/github.com/nebula-chat/chatengine/access/auth_key
        go build
    
    # build auth_session
        cd $GOPATH/src/github.com/nebula-chat/chatengine/service/auth_session
        go build
        
    # build sync
        cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/sync
        go build
    
    # build upload
        cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/upload
        go build
    
    # build document
        cd $GOPATH/src/github.com/nebula-chat/chatengine/service/document
        go build
    
    # build biz_server
        cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/biz_server
        go build
        
    # build session
        cd $GOPATH/src/github.com/nebula-chat/chatengine/access/session
        go build
    
  • Run

cd $GOPATH/src/github.com/nebula-chat/chatengine/service/auth_session
./auth_session

cd $GOPATH/src/github.com/nebula-chat/chatengine/service/document
./document

cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/sync
./sync

cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/upload
./upload

cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/biz_server
./biz_server

cd $GOPATH/src/github.com/nebula-chat/chatengine/access/auth_key
./auth_key

cd $GOPATH/src/github.com/nebula-chat/chatengine/access/session
./session

cd $GOPATH/src/github.com/nebula-chat/chatengine/access/frontend
./frontend

More

Build document

Build script

Prerequisite script

Note

import all scripts/*.sql

Compatible clients

Important: default signIn and signOut verify code is 12345

Android client for NebulaChat

FOSS client for NebulaChat

iOS client for NebulaChat

tdesktop for NebulaChat

TODO

Feedback

Please report bugs, concerns, suggestions by issues.

Notes

Chatengine is not a commercial project, only supports mtproto API layer 86, and only supports private chats and small groups.

If need enterprise edition, please PM the author or download clients from nebula.chat (default verify code is: 12345).

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