-
-
Notifications
You must be signed in to change notification settings - Fork 118
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1049 from gotd/docs/update-roadmap
docs: update roadmap, support
- Loading branch information
Showing
2 changed files
with
30 additions
and
108 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,112 +1,11 @@ | ||
# Roadmap | ||
|
||
## Q4 21 | ||
### Documentation | ||
Currently gotd is mostly feature-complete as a MTProto client and | ||
no big changes are planned. | ||
|
||
Generate a static websites for documentations. | ||
Maintenance: | ||
- Update to new Telegram Layers (API Versions) | ||
- Bug fixes if capacity allows without any SLA | ||
|
||
### Observability | ||
|
||
* Add basic OpenTelemetry spans _(from Q3)_ | ||
* Advanced OpenTelemetry tracing. | ||
* Prometheus metrics. | ||
|
||
### Updates engine | ||
* ~~Refactor gap engine~~ | ||
* ~~Simplify initialization~~ | ||
* ~~Add example~~ and documentation | ||
|
||
### ~~Update to go1.17~~ | ||
~~* Update go.mod to allow lazy load~~ | ||
|
||
## Q1 22 | ||
|
||
### Sugared client | ||
|
||
Make the client simple for everyone with things like: | ||
|
||
* Entity caching | ||
* In memory | ||
* External storage, for example in SQLite, PostgreSQL or MongoDB | ||
* Friendly wrappers for all objects | ||
* Dialogs | ||
* Users | ||
* Files | ||
* Photos | ||
|
||
### Bot API | ||
|
||
An embeddable `telegram-bot-api` compatible server should be implemented. | ||
|
||
### Server | ||
|
||
An embeddable Telegram server with limited functionality that can be used as a | ||
server for `telegram-bot-api`. | ||
|
||
### Bot API Client | ||
|
||
A client for `telegram-bot-api`. | ||
|
||
### Goals | ||
|
||
* Implement ecosystem of tools for Telegram in Go. | ||
* Make it robust via extensive, extreme end-to-end testing, benchmarking and profiling. | ||
|
||
## No Milestone | ||
|
||
Features that have no milestone, but are likely to appear at some point. | ||
|
||
* Extreme End-to-End | ||
* Advanced features | ||
* E2E encrypted chats | ||
* CDN support | ||
* Calls support | ||
* Components | ||
* Telegram Server in Go | ||
* Telegram Bot API in Go | ||
* Telegram Client in Go | ||
* Telegram Bot Client in Go | ||
* Tracing support in every component, on all layers of abstraction | ||
* MTProto level (withTraceID generic wrapper, like withoutUpdates) | ||
* Application level (spans in Server, Bot, Client, Events, Hooks) | ||
* Persistence level (spans in Database implementations of Client/Server persistence) | ||
* Background tasks level | ||
* Network level (eBPF) | ||
* Continuous (daily, hourly consistent runs) | ||
* Profiling | ||
* Go | ||
* End-to-end | ||
* Benchmarks | ||
* Go | ||
* End-to-End | ||
* Fuzzing | ||
* GitHub Actions (checks for PR's) | ||
* Benchmarks (Only significant changes) | ||
* API Backward Compatibility check | ||
* Kubernetes integration | ||
* Telegram Bot API | ||
* Telegram Server | ||
* Extreme performance | ||
* The [gnet](https://github.com/panjf2000/gnet) Event Loop for Server | ||
* Generated object pooling | ||
* Zero allocation AES-IGE implementation | ||
|
||
## Changelog | ||
|
||
### Q3 21 | ||
|
||
#### ~~Update key exchange~~ | ||
|
||
An updated key exchange protocol should be implemented. Done. | ||
|
||
#### Initial tracing | ||
|
||
Add basic OpenTelemetry spans (**moved to Q4**) | ||
|
||
#### ~~Bot API Types~~ | ||
|
||
~~All Bot API Types should be parsed:~~ | ||
|
||
* ~~Parser from docs.~~ | ||
* ~~OpenAPI v3 generated spec from parsed types.~~ | ||
* ~~Go structs generated from OpenAPI v3 spec.~~ | ||
The gotd is fully non-commercial open source project, so | ||
contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for details. |