Skip to content

livmackintosh/matrix-sdk

Repository files navigation

Matrix SDK Haskell

Haskell Matrix

Another SDK for the [matrix] protocol written in Haskell.

This is early alpha software and as such does not implement the full suite of features that one might normally expect from such a project.

There are two parts to this project: a bot and the (HTTP) API client for [matrix]. Both components are being developed simultaniously but probably will be separated in the future

Project Status

Early Alpha.

Dependencies

Building

The Haskell Stack tool is the current build method. You can install this with your package manager of choice or, you can install Haskell Platform.

stack build
stack install

This will install to ~/.local/bin but you can put the binary wherever you like (e.g. /usr/local/bin)

Design

  • Uses ReaderT to provide runtime configuration and dependencies thoughout the API.

  • Monoid instance for State allowing for type-safe immutable appends of state updates

  • The client API and the bot framework are separate to allow for these to to be re-used independently and to allow for custom bots using this project.

  • Core library does not store state. In fact, there is no state persistence at all currently. This should be the default so as to preserve privacy.

  • Should be blazing fast from the outset by taking advantage of the available Haskell concurrency features.

Copying

Copyright © 2020 Olivia Mackintosh

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

The full license text is available in the LICENSE file.

About

Haskell SDK for [matrix]

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published