telegramd

module
v0.0.0-...-11651c4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 12, 2018 License: Apache-2.0

README

Telegramd - Unofficial open source telegram server written in golang

打造高性能、稳定并且功能完善的开源telegram服务端,建设开源telegram客户端生态系统非官方首选服务!

Chinese

简介

Go语言非官方开源telegram服务端,包括但不限于如下一些特色:

  • mtprotoc代码生成器
    • 可自动将tl转换成protobuf协议
    • 自动生成tl二进制数据的的codec代码,可将接收到客户端tl的二进制数据转换成protobuf对象,并通过grpc接入到内部各服务节点处理,这样就可以借助很完善的grpc生态环境来实现我们的系统
  • dalgen数据访问层代码生成器
    • 集成了sqlparser解析器,通过可配置的sql自动生成dao代码
    • 代码生成时检查sql语法,极大减少传统手写sql实现的出错几率和手写sql调用的工作量
  • 支持可切换的多个服务注册和发现系统
  • 集成了grpc的recovery等中间件
架构图

架构图

文档

RoadMap

Diffie–Hellman key exchange

Creating an Authorization Key

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

Encrypted CDNs for Speed and Security @steedfly翻译

编译和安装

编译和安装

编译和运行脚本

依赖脚本

配套客户端
官方开源客户端修改适配版本

Android client for telegramd

macOS client for telegramd

iOS client for telegramd

Web客户端(敬请期待)

桌面客户端(敬请期待)

开源客户端库修改适配版本

tdlib

TODO

channels, Secret Chats, bots and payments这几大功能还未实现

技术交流群

Bug反馈,意见和建议欢迎加入Telegramd中文技术交流群讨论。

English

Introduce

open source mtproto server implement by golang, which compatible telegram client.

Install

Build and install

build

prerequisite

Feedback

Please report bugs, concerns, suggestions by issues, or join telegram group Telegramd to discuss problems around source code.

Directories

Path Synopsis
access
session/server
salt cache
salt cache
baselib
app
cache
Package cache provide a Cache interface and some implement engine Usage: import( "github.com/astaxie/beego/cache" ) bm, err := cache.NewCache("memory", `{"interval":60}`) Use it like this: bm.Put("astaxie", 1, 10 * time.Second) bm.Get("astaxie") bm.IsExist("astaxie") bm.Delete("astaxie") more docs http://beego.me/docs/module/cache.md Package cache implements a LRU cache.
Package cache provide a Cache interface and some implement engine Usage: import( "github.com/astaxie/beego/cache" ) bm, err := cache.NewCache("memory", `{"interval":60}`) Use it like this: bm.Put("astaxie", 1, 10 * time.Second) bm.Get("astaxie") bm.IsExist("astaxie") bm.Delete("astaxie") more docs http://beego.me/docs/module/cache.md Package cache implements a LRU cache.
cache/redis
Package redis for cache provider depend on github.com/garyburd/redigo/redis go install github.com/garyburd/redigo/redis Usage: import( _ "github.com/astaxie/beego/cache/redis" "github.com/astaxie/beego/cache" ) bm, err := cache.NewCache("redis", `{"conn":"127.0.0.1:11211"}`) more docs http://beego.me/docs/module/cache.md
Package redis for cache provider depend on github.com/garyburd/redigo/redis go install github.com/garyburd/redigo/redis Usage: import( _ "github.com/astaxie/beego/cache/redis" "github.com/astaxie/beego/cache" ) bm, err := cache.NewCache("redis", `{"conn":"127.0.0.1:11211"}`) more docs http://beego.me/docs/module/cache.md
grpc_util
Package grpc_util is a generated protocol buffer package.
Package grpc_util is a generated protocol buffer package.
grpc_util/middleware/examples/zproto
Package zproto is a generated protocol buffer package.
Package zproto is a generated protocol buffer package.
grpc_util/middleware/recovery2
helper recovery, RecoveryHandlerFunc spit UnaryRecoveryHandlerFunc and StreamRecoveryHandlerFunc
helper recovery, RecoveryHandlerFunc spit UnaryRecoveryHandlerFunc and StreamRecoveryHandlerFunc
grpc_util/service_discovery/examples/proto
Package proto is a generated protocol buffer package.
Package proto is a generated protocol buffer package.
net2/codec
Test codec
Test codec
queue2
Package queue provides a fast, ring-buffer queue based on the version suggested by Dariusz Górecki.
Package queue provides a fast, ring-buffer queue based on the version suggested by Dariusz Górecki.
timer
Package timer provides various enhanced timer functions.
Package timer provides various enhanced timer functions.
biz
core/account
Package account is a generated protocol buffer package.
Package account is a generated protocol buffer package.
core/phone_call
Package phone_call is a generated protocol buffer package.
Package phone_call is a generated protocol buffer package.
core/user
Package user is a generated protocol buffer package.
Package user is a generated protocol buffer package.
dal/dao/redis_dao
TODO(@benqi): 可以使用如下方法来生成seq - 如果运维能保证redis数据可靠性,可移除数据库seq_updates_ngen的存储 - 可使用[seqsvr](https://github.com/nebula-in/seqsvr)服务来生成seq - 可调研艺龙的序列号生成器 - 直接使用etcd或zk
TODO(@benqi): 可以使用如下方法来生成seq - 如果运维能保证redis数据可靠性,可移除数据库seq_updates_ngen的存储 - 可使用[seqsvr](https://github.com/nebula-in/seqsvr)服务来生成seq - 可调研艺龙的序列号生成器 - 直接使用etcd或zk
Package mtproto is a generated protocol buffer package.
Package mtproto is a generated protocol buffer package.
push

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL