Go to file
Thomas Anderson d1e40abab8 Fix typo "marix" -> "matrix" 2023-03-24 12:24:22 +01:00
.github/workflows style: Fix formatting using `black` and `isort`. 2022-03-17 18:33:02 +05:30
contrib/archlinux/pkgbuild nio: Bump our version 2021-09-27 10:30:21 +02:00
doc Fix typo "marix" -> "matrix" 2023-03-24 12:24:22 +01:00
docker Update Dockerfile: Update version numbers 2022-05-30 13:14:07 +02:00
examples style: Fix formatting using `black` and `isort`. 2022-03-17 18:33:02 +05:30
nio chore: Remove the usage of the imp module 2022-09-08 18:42:40 +02:00
tests chore: Fix our import order 2022-09-08 18:42:40 +02:00
.gitignore Update aiohttp-socks dependency 2021-12-28 14:20:02 -08:00
.nojekyll Move the index.html and nojekyll files. 2019-01-16 14:26:55 +01:00
.pre-commit-config.yaml fix: Exclude `tests/data/` from pre-commit workflow. 2022-03-28 13:15:17 +05:30
CHANGELOG.md Fix the release date in the changelog 2022-02-04 14:11:27 +01:00
LICENSE.md Initial commit. 2018-04-06 13:51:15 +02:00
MANIFEST.in nio: Add manifest. 2018-10-10 16:28:57 +02:00
Makefile nio: Bump our version 2021-01-18 20:39:36 +01:00
README.md docs(README): Mention that room key backups are unsupported. 2022-05-04 19:56:58 +02:00
apache_license.txt style: Fix formatting using `black` and `isort`. 2022-03-17 18:33:02 +05:30
index.html Move the index.html and nojekyll files. 2019-01-16 14:26:55 +01:00
pyproject.toml Update jsonschema to version 4.4.0 2022-03-05 19:09:29 +01:00
rtd-requirements.txt docs: Add aiohttp_socks to the rtd deps 2021-04-04 14:07:02 +02:00
setup.cfg nio: Remove some unused variables for now. 2018-06-06 17:47:42 +02:00
test-requirements.txt CI: Fix our tox setup for github CI. 2020-11-07 16:36:23 +01:00
tox.ini CI: Enable coverage for the CI again. 2020-11-07 17:05:03 +01:00

README.md

nio

Build Status codecov license Documentation Status #nio

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).

Documentation

The full API documentation for nio can be found at https://matrix-nio.readthedocs.io

Features

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
  • m.tags
  • python 2.7 support
  • cross-signing support
  • server-side key backups (room key backup, "Secure Backup")
  • user deactivation (#112)
  • in-room emoji verification
  • room upgrades and m.room.tombstone events (#47)

Installation

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 libolm-dev. On Fedora one can use dnf to install package libolm-devel. On MacOS one can use brew to install package libolm. 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 the docker/ directory.

Examples

For examples of how to use nio, and how others are using it, read the docs