diff --git a/README.md b/README.md index 038b8329..2491e632 100644 --- a/README.md +++ b/README.md @@ -35,9 +35,16 @@ ## Features -

Type safety

+

Functional reactive design

-All the API types and methods are implemented with heavy use of ADTs to enforce type safety and tight integration with IDEs. Bot's commands have precise types too, thereby serving as a self-documenting code and respecting the parse, don't validate programming idiom. +All the API types and methods are hand-written, with heavy use of ADTs (algebraic data types) to enforce type safety and tight integration with IDEs. As few Options as possible. +

+ +
+ +

API types as ADTs

+

+All the API types and methods are hand-written, with heavy use of ADTs (algebraic data types) to enforce type safety and tight integration with IDEs. As few Options as possible.


@@ -47,6 +54,13 @@ All the API Dialogues management is independent of how/where they are stored: just replace one line and make them persistent (for example, store on a disk, transmit through a network), without affecting the actual FSM algorithm. By default, teloxide stores all user dialogues in RAM. Default database implementations are coming!

+

Strongly typed bot commands

+

+You can describe bot commands as enumerations, and then they'll be automatically constructed from strings. Just like you describe JSON structures in serde-json and command-line arguments in structopt. +

+ +
+ ## Setting up your environment 1. [Download Rust](http://rustup.rs/). 2. Create a new bot using [@Botfather](https://t.me/botfather) to get a token in the format `123456789:blablabla`.