Skip to content

seamlik/tansa

Repository files navigation

Tansa: Serverless LAN service discovery over IPv6

codecov

This project is an opinionated solution of service discovery within a IPv6-enabled LAN. Written in pure Rust, it is cross-platform and is suitable to be a unified and portable solution for an application planning to span all major devices like laptops, smartphones and more. Unlike solutions such as DNS Service Discovery, applications using this solution do not rely on any server/daemon running on the operating system.

This project offers both a crate and a CLI application. However, I will not publish it to any public registry since it is highly experimental.

Technologies under the hood

Multicast

Service discovery is mostly implemented by exchanging multicast packets on a rendezvous address.

IP neighbors

When multicast is unavailable, services on other devices are naturally undiscoverable. However, devices connected directly to the host device are still discoverable as IP neighbors.

This scenario can happen, for example, when 2 Android smartphones are connected via a hotspot or even Wi-Fi Direct. In this case, no other device exists within the LAN, but applications on the smartphones can still communicate.

This feature relies on the operating system. Current we support these operating systems:

Project name meaning

Based on Japanese "探索" with pronounciation "tansaku" meaning "discovery".

About

Serverless LAN service discovery over IPv6

Resources

License

Stars

Watchers

Forks