···11+## v0.1.0 (unreleased)
22+33+Initial release of ocaml-matrix, a pure OCaml Matrix SDK.
44+55+### Features
66+77+- `matrix_proto`: Matrix protocol types with bidirectional JSON codecs using jsont
88+- `matrix_client`: Matrix client SDK with session persistence and HTTP requests
99+- `matrix_eio`: Eio-idiomatic wrapper with switches, fibres, and Eio.Io errors
1010+- `omatrix`: CLI tool with cmdliner subcommands for login, sync, and messaging
1111+- Support for encrypted room creation and direct message rooms
+15
LICENSE.md
···11+## ISC License
22+33+Copyright (c) 2024-2025 Anil Madhavapeddy <anil@recoil.org>
44+55+Permission to use, copy, modify, and/or distribute this software for any
66+purpose with or without fee is hereby granted, provided that the above
77+copyright notice and this permission notice appear in all copies.
88+99+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1010+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1111+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1212+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1313+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1414+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1515+PERFORMANCE OF THIS SOFTWARE.
+23-39
dune-project
···11(lang dune 3.20)
22-(name ocaml-matrix)
22+(name matrix)
3344(generate_opam_files true)
5566-(source (github matrix-org/ocaml-matrix))
77-(license Apache-2.0)
88-(authors "OCaml Matrix Contributors")
99-(maintainers "dev@matrix.org")
66+(license ISC)
77+(authors "Anil Madhavapeddy")
88+(maintainers "Anil Madhavapeddy <anil@recoil.org>")
99+(homepage "https://tangled.org/@anil.recoil.org/ocaml-matrix")
1010+(bug_reports "https://tangled.org/@anil.recoil.org/ocaml-matrix/issues")
1111+(maintenance_intent "(latest)")
10121113(package
1212- (name ocaml-matrix)
1414+ (name matrix)
1315 (synopsis "Pure OCaml Matrix SDK")
1414- (description "A pure OCaml implementation of the Matrix client SDK")
1515- (allow_empty)
1616- (depends
1717- (ocaml (>= 5.1))
1818- matrix_proto))
1919-2020-(package
2121- (name matrix_proto)
2222- (synopsis "Matrix protocol types with JSON codecs")
2323- (description "OCaml types for Matrix protocol with bidirectional JSON encoding/decoding using jsont")
1616+ (description
1717+ "A pure OCaml implementation of the Matrix client SDK with protocol types, \
1818+ HTTP client, and Eio integration. Provides matrix.proto for protocol types, \
1919+ matrix.client for the HTTP client, and matrix.eio for Eio-idiomatic usage.")
2420 (depends
2521 (ocaml (>= 5.1))
2622 jsont
2723 ptime
2828- (alcotest :with-test)))
2929-3030-(package
3131- (name matrix_client)
3232- (synopsis "Matrix client SDK for OCaml")
3333- (description "Full Matrix client SDK using requests for HTTP and jsont for JSON")
3434- (depends
3535- (ocaml (>= 5.1))
3636- matrix_proto
3724 requests
3838- jsont
3925 tomlt
4026 xdge
4127 uri
4228 eio
4343- ptime
4444- logs))
4545-4646-(package
4747- (name matrix_eio)
4848- (synopsis "Eio-idiomatic Matrix client SDK")
4949- (description "Matrix client SDK using Eio idioms: switches for resource management, Eio.Io for errors, fibres for concurrency")
5050- (depends
5151- (ocaml (>= 5.1))
5252- matrix_client
5353- matrix_proto
5454- eio
5555- uri))
2929+ logs
3030+ base64
3131+ mirage-crypto
3232+ mirage-crypto-ec
3333+ mirage-crypto-rng
3434+ digestif
3535+ kdf
3636+ fmt
3737+ cmdliner
3838+ (alcotest :with-test)
3939+ (eio_main :with-test)))