Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adapt existing specs to lifecycle framework #177

Merged
merged 13 commits into from
Jul 3, 2019
Prev Previous commit
Next Next commit
add header & TOC for mplex spec
  • Loading branch information
yusefnapora committed Jun 21, 2019
commit 670240741d16477e95330e404f3d53d45200e68d
38 changes: 37 additions & 1 deletion mplex/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,42 @@
# mplex

> This repo contains the spec of mplex, the friendly Stream Multiplexer (that works in 3 languages!)
> The spec for the friendly Stream Multiplexer (that works in 3 languages!)

| Lifecycle Stage | Maturity | Status | Latest Revision |
|-----------------|----------------|--------|-----------------|
| 3A | Recommendation | Active | r0, 2018-10-10 |

Authors: [@daviddias], [@Stebalien], [@tomaka]

Interest Group: [@yusefnapora], [@richardschneider], [@jacobheun]

[@daviddias]: https://github.com/daviddias
[@Stebalien]: https://github.com/Stebalien
[@tomaka]: https://github.com/tomaka
[@yusefnapora]: https://github.com/yusefnapora
[@richardschneider]: https://github.com/richardschneider
[@jacobheun]: https://github.com/jacobheun

See the [lifecycle document][lifecycle-spec] for context about maturity level
and spec status.

[lifecycle-spec]: https://github.com/libp2p/specs/blob/master/00-framework-01-spec-lifecycle.md

## Table of Contents

- [mplex](#mplex)
- [Table of Contents](#table-of-contents)
- [Overview](#overview)
- [Message format](#message-format)
- [Flag Values](#flag-values)
- [Protocol](#protocol)
- [Opening a new stream](#opening-a-new-stream)
- [Writing to a stream](#writing-to-a-stream)
- [Closing a stream](#closing-a-stream)
- [Resetting a stream](#resetting-a-stream)
- [Implementation notes](#implementation-notes)

## Overview

Mplex is a Stream Multiplexer protocol used by js-ipfs and go-ipfs in their implementations. The origins of this protocol are based in [multiplex](https://github.com/maxogden/multiplex), the JavaScript-only Stream Multiplexer. After many battle field tests, we felt the need to improve and fix some of its bugs and mechanics, resulting on this new version used by libp2p.

Expand Down