This repository contains the documentation for Matrix. Primarily, that means the Matrix protocol specifcation, but this repo also comtains a lot of supporting documents, including some introductions to Matrix, and, notably, a list of projects using Matrix which is visible on the `matrix.org website `_. Issue tracking ============== Issues with the Matrix specification and supporting documentation are tracked in `GitHub `_. The following labels are used to help categorize issues: `spec-omission `_ Things which have been implemented but not currently specified. These may range from entire API endpoints, to particular options or return parameters. Issues with this label will have been implemented in `Synapse `_. Normally there will be a design document in Google Docs or similar which describes the feature. Examples: * `Spec PUT /directory/list `_ * `Unspec'd server_name request param for /join/{roomIdOrAlias} `_ `clarification `_ An area where the spec could do with being more explicit. Examples: * `Spec the implicit limit on /syncs `_ * `Clarify the meaning of the currently_active flags in presence events `_ `bug `_ Something which is in the spec, but is wrong. Note: this is *not* for things that are badly designed or don't work well (for which see 'improvement' or 'feature') - it is for places where the spec doesn't match reality. Examples: * `swagger is wrong for directory PUT `_ * `receipts section still refers to initialSync `_ `improvement `_ A suggestion for a relaatively simple improvement to the protocol. Examples: * `We need a 'remove 3PID' API so that users can remove mappings `_ * `We should mandate that /publicRooms requires an access_token `_ `feature `_ A suggestion for a significant extension to the matrix protocol which needs considerable consideration before implementation. Examples: * `Peer-to-peer Matrix `_ * `Specify a means for clients to "edit" previous messages `_ `projects `_ A project which needs adding to the 'Try Matrix Now' page. Examples: * `add https://gitlab.com/uhoreg/matrix-appservice-prosody `_ * `add https://github.com/tavoda/matrix-java project `_ Structure of this repository ============================ - ``api`` : Contains the HTTP API specification, documented using OpenAPI (swagger). - ``attic``: Contains historical sections of specification for reference purposes. - ``changelogs``: Contains change logs for the various parts of the specification. - ``drafts``: Previously, contained documents which were under discussion for future incusion into the specification and/or supporting documentation. This is now historical, as we use separate discussion documents (see ``_). - ``event-schemas``: Contains the `JSON Schema`_ for all Matrix events contained in the specification, along with example JSON files. - ``meta``: Contains documents outlining the processes involved when writing documents, e.g. documentation style, guidelines. - ``scripts``: Contains scripts to generate formatted versions of the documentation, typically HTML. - ``specification``: Contains the specification split up into sections. - ``supporting-docs``: Contains additional documents which explain design decisions, examples, use cases, etc. - ``templating``: Contains the templates and templating system used to generate the spec. Contributing ============ Known issues with the specification are represented as JIRA issues at ``_. If you want to ask more about the specification, join us on `#matrix-dev:matrix.org `_. If you would like to contribute to the specification or supporting documentation, see ``_. .. _JSON Schema: http://json-schema.org/