nio is a multilayered Matrix client library. The underlying base layer doesn't do any network IO on its own, but on top of that is a full fledged batteries-included asyncio layer using aiohttp. File IO is only done if you enable end-to-end encryption (E2EE).
The full API documentation for nio can be found at https://matrix-nio.readthedocs.io
nio has most of the features you'd expect in a Matrix library, but it's still a work in progress.
✅transparent end-to-end encryption (EE2E) ✅encrypted file uploads & downloads ✅manual and emoji verification ✅custom authentication types ✅well-integrated type system ✅kick, ban and unban ✅typing notifications ✅message redaction ✅token based login ✅user registration ✅read receipts ✅live syncing ✅
❌python 2.7 support ❌cross-signing support ❌user deactivation (#112) ❌in-room emoji verification ❌room upgrades and
To install nio, simply use pip:
$ pip install matrix-nio
Note that this installs nio without end-to-end encryption support. For e2ee
support, python-olm is needed which requires the
libolm C library (version 3.x).
On Debian and Ubuntu one can use
apt-get to install package
On Fedora one can use
dnf to install package
On MacOS one can use brew to install package
Make sure version 3 is installed.
After libolm has been installed, the e2ee enabled version of nio can be installed using pip:
$ pip install "matrix-nio[e2e]"
Additionally, a docker image with the e2ee enabled version of nio is provided in
For examples of how to use nio, and how others are using it, read the docs