# Roadmap
**IMPORTANT: I have been very optimistic in the roadmap, so if you are expecting packets to work or links to be supported soon, well, bad luck!**

## Interfaces
- [x] create an interface system.
- [x] create TCP client & server interfaces
- [ ] redo the interface system using functions instead of messages
- [ ] allow other packages to add interfaces.

### Create More Interfaces
 - [x] TCP
 - [ ] UDP
 - [ ] I2P
 - [ ] Tor
 - [ ] socket(shared instance)
 - [ ] serial
 - [ ] pipe
 - [ ] auto(multicast IPv6 UDP)
 - [ ] rnode
 - [ ] packet radio modem
 - [ ] [direct ethernet](https://github.com/markqvist/Reticulum/discussions/878)
 - [ ] [wifi direct](https://en.wikipedia.org/wiki/Wi-Fi_Direct)
 - [ ] [bluetooth](https://github.com/markqvist/Reticulum/discussions/716)
 - [ ] [RNS over HTTP](https://github.com/markqvist/Reticulum/discussions/924)
 - [ ] DNS(iodine/custom)
 - [ ] [other covert interfaces](https://github.com/markqvist/Reticulum/discussions/1001)

## Packets
 - [x] packet record
 - [x] packet encoding/decoding
 - [x] sending/receiving raw packets
 - [x] announce handling
 - [x] `RNS.GenDestination` to listen for packets
 - [ ] path request handing **testing needed**
 - [ ] receipts **testing needed**

## Links
 - [ ] link record
 - [ ] link requests
 - [ ] keepalive
 - [ ] teardown
 - [ ] data
 - [ ] identification
 - [ ] `RNS.GenDestination` integration
 - [ ] resources
 - [ ] channel
 - [ ] buffer

## Other
 - [ ] :warning: ratchet support :warning:
 - [ ] transport mode
 - [ ] transport IDs

## RNS protocols to implement:
- [ ] LXMF
- [ ] LXST
