There are 5 examples in this directory using different libraries:
-
Python (CPython): webhook_cpython_echo_bot.py
- Pros:
- Official python libraries, it works out of the box (doesn't require to install anything).
- Works with Python 2 and Python 3 (need to be converted with 2to3).
- Cons:
- Ugly code.
- Many things to handle yourself, this can lead to errors.
- Not powerful, do the trick but the performance is low.
- Pros:
-
CherryPy (3.8.0): webhook_cherrypy_echo_bot.py
- Pros:
- It's a web application framework, cleaner code, uses objects for defining the web application.
- Very good performance.
- The project seems to be active, latest version is recent.
- Works with Python 2 and Python 3.
- Cons:
- Some things are not very intuitive, reading the doc is a must.
- Pros:
-
Flask (0.10.1): webhook_flask_echo_bot.py
- Pros:
- It's a web application framework, cleaner code, uses decorator which can be nice.
- Good performance.
- It's intuitive if you know how web application works.
- Cons:
- The project seems not to be very active, latest version dates 2013.
- They don't recommend to use it with Python 3, but may work.
- May be a oversized for just handling webhook petitions.
- Pros:
-
aiohttp (1.2.0): webhook_aiohttp_echo_bot.py
- Pros:
- It's a web application framework
- Python 3 compatible
- Asynchronous, excellent performance
- Utilizes new async/await syntax
- Cons:
- Requires Python 3.4.2+, don't work with Python 2
- Pros:
-
Twisted (20.3.0): webhook_twisted_echo_bot.py
- Pros:
- Asynchronous event-driven networking engine
- Very high performance
- Built-in support for many internet protocols
- Cons:
- Twisted is low-level, which may be good or bad depending on use case
- Considerable learning curve - reading docs is a must.
- Pros:
-
FastAPI(0.70.1): webhook_fastapi_echo_bot.py
- Pros:
- Can be written for both sync and async
- Good documentation
- Cons:
- Requires python 3.6+
- Pros:
*Latest update of this document: 01-03-2022