aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 367c64d3b09412fddf6b0003f4bf0df27ea01a84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Matrix::Client

A [Raku](https://raku.org) library for [Matrix](https://matrix.org).

## Installation

    zef install Matrix::Client

## Usage

    use Matrix::Client;

    my $client = Matrix::Client.new(
        :home-server<https://matrix.org>,
        :device-id<matrix-client>
    );

    $client.login(:username<myuser>, :password<s3cr3t>);

    # Check my user
    say $client.whoami;  # @myuser:matrix.org

    # Send a message to a random room that I'm in
    my $room = $client.joined-rooms.pick;
    say "Sending a message to {$room.name}";
    $room.send("Hello from Raku!");

## Description

Matrix is an open network for secure, decentralized communication.

This module provides an interface to interact with a Matrix homeserver through
the *Client-Server API*. It's currenlty on active development but it's mostly
stable for day to day use.

Here's a not complete list of things that can be done:

* Login/logout
* Registration
* Synchronization of events/messages
* Send events
* Send messages
* Upload files to a home-server

There are many missing endpoints (you can check a complete checklist
[here](https://github.com/matiaslina/perl6-matrix-client/blob/master/endpoints.md)).
If you want to contribute with some endpoint check the
[CONTRIBUTING.md](CONTRIBUTING.md) file.

## Documentation

There's a couple of pages of documentation on the `docs/` directory. This
includes API documentation, basic usage, examples, etc.

## Author

Matías Linares <matias@deprecated.org> | Matrix ID: `@matias:chat.deprecated.org`