mtp/README.md
2026-06-21 22:57:50 +02:00

55 lines
1.7 KiB
Markdown

# **M**ethanium **T**ransport **P**rotocol
**MTP** is a **m**odular **t**ransport **p**rotocol by Methanium.
## Crates
- Codec
- Transport
- Common
- Crypto
- TypeMap
- Registry
- Host
- Client
## Codec
The Codec crate handles encoding and decoding of MTP packets using Communication Types and Data Types from the Registry.
**Data Values:**
- Container
- Encrypted Container (requires `crypto` feature)
- Signed Integer
- Unsigned Integer
- Boolean
- Signed Float
- String
- Array
- Binary (List of Bytes)
Encoding/decoding uses a `TypeMap` to resolve type names to wire IDs.
The Codec uses the Crypto crate to encrypt and decrypt Encrypted Containers.
---
## Transport
The Transport crate wraps QUIC using `wtransport`. It provides `Sender`/`Receiver` for bidirectional message passing over QUIC streams.
## Common
Common handles logging and error handling. Personal information reported to Common will be anonymized.
## Crypto Stack
| Crate | Audited? | Notes |
| ---------------- | -------- | ------------------------------------------------ |
| ml-dsa | No | NIST vectors pass; regression bug fixed Jan 2026 |
| ed25519-dalek | Yes | Used by Signal, Diem |
| chacha20poly1305 | Yes | NCC Group audit, Dec 2019 |
| aes-gcm | Yes | NCC Group audit, Dec 2019 |
| hkdf | No | Simple construction; well-reviewed |
| sha2 | No | Standard construction; widely reviewed |
| zeroize | No | Simple; widely used |
| mlkem-tls | No | mlkem-rs backend unaudited |