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等中间件
架构图
文档
Mobile Protocol: Detailed Description (v.1.0, DEPRECATED)
Encrypted CDNs for Speed and Security @steedfly翻译
编译和安装
配套客户端
官方开源客户端修改适配版本
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
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
|
|
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
|
|
Click to show internal directories.
Click to hide internal directories.