Giter Club home page Giter Club logo

nio

Build Status PyPI - Python Version 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
  • ✅ space parents/children
  • ✅ manual and emoji verification
  • ✅ custom authentication types
  • ✅ threading support
  • ✅ well-integrated type system
  • ✅ knocking, kick, ban and unban
  • ✅ typing notifications
  • ✅ message redaction
  • ✅ token based login
  • ✅ user registration
  • ✅ read receipts
  • ✅ live syncing
  • m.reactions
  • m.tags
  • ❌ cross-signing support
  • ❌ server-side key backups (room key backup, "Secure Backup")
  • ❌ user deactivation (#112)
  • ❌ in-room emoji verification

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

matrix-nio's Projects

matrix-nio icon matrix-nio

A Python Matrix client library, designed according to sans I/O (http://sans-io.readthedocs.io/) principles

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.