Skip to content

Commit

Permalink
docs(readme): update
Browse files Browse the repository at this point in the history
  • Loading branch information
ernado committed Mar 11, 2021
1 parent 3df9b0e commit a526c03
Showing 1 changed file with 21 additions and 13 deletions.
34 changes: 21 additions & 13 deletions README.md
@@ -1,6 +1,6 @@
# td [![Go Reference](https://pkg.go.dev/badge/github.com/gotd/td.svg)](https://pkg.go.dev/github.com/gotd/td/telegram) [![codecov](https://codecov.io/gh/gotd/td/branch/main/graph/badge.svg?token=shR5PXG7Ds)](https://codecov.io/gh/gotd/td)

Telegram client and MTProto implementation in go.
Fast Telegram client fully in go.

* [Security policy](.github/SECURITY.md)
* [User support and dev chat](.github/SUPPORT.md)
Expand All @@ -12,32 +12,40 @@ Before using this library, read [How Not To Get Banned](https://github.com/gotd/

## Status

Work in progress. Only go1.16 is supported and no backward compatibility is provided.
Work is still in progress, but basic functionality were tested in production and works fine.
Only go1.16 is supported and no backward compatibility is provided for now.

Goal of this project is to implement Telegram client while
providing building blocks for the other client or even server
implementation without performance bottlenecks.
Goal of this project is to implement stable, performant and safe client for Telegram in go while
providing simple and convenient API.

This project is fully non-commercial and not affiliated with any commercial organization
(including Telegram LLC).

## Features

* Full MTProto 2.0 implementation in go
* Code for Telegram types generated by `./cmd/gotdgen` (based on [gotd/tl](https://github.com/gotd/tl) parser)
* Embedded [official documentation](https://core.telegram.org/schema)
* Code for Telegram types generated by `./cmd/gotdgen` (based on [gotd/tl](https://github.com/gotd/tl) parser) with embedded [official documentation](https://core.telegram.org/schema)
* Pluggable session storage
* Automatic re-connects with keepalive
* Vendored Telegram public keys that are kept up-to-date
* End-to-end and unit testing, fuzzing
* Rigorously tested
* End-to-end with real Telegram server in CI
* End-to-End with gotd Telegram server (in go)
* Lots of unit testing
* Fuzzing
* 24/7 canary bot in production that tests reconnects, update handling, memory leaks and performance
* No runtime reflection overhead
* Secure PRNG used for crypto
* [Conforms](https://github.com/gotd/td/issues/155) to [Security guidelines](https://core.telegram.org/mtproto/security_guidelines) for Telegram client software developers
* Secure PRNG used for crypto
* Replay attack protection
* 2FA support
* MTProxy support
* Connection pooling
* Helpers for uploads and downloads
* CDN support
* Automatic DC migration and redirect handling
* Multiple helpers that hide complexity of raw Telegram API
* [uploads](https://pkg.go.dev/github.com/gotd/td/telegram/uploader) for big and small files with multiple streams for single file and progress reporting
* [downloads](https://pkg.go.dev/github.com/gotd/td/telegram/downloader) with CDN support, also multiple streams
* [messages](https://pkg.go.dev/github.com/gotd/td/telegram/message) with various convenience builders and text styling support
* CDN support with connection pooling
* Automatic datacenter migration and redirects handling

## Example

Expand Down

0 comments on commit a526c03

Please sign in to comment.