GithubHelp home page GithubHelp logo

tansa's Introduction

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".

tansa's People

Contributors

seamlik avatar

Stargazers

August Ng avatar

Watchers

 avatar

tansa's Issues

Send discovery requests over link-local addresses in case multicast is unavailable

This usually happens when 2 devices are connected directly without a router. For example:

  • 2 Android devices connected via the hotspot provided by one of them
  • 2 laptops connected via an ethernet cable

In these scenarios, the user might try to transfer large files between devices, and there will be only 2 devices in the LAN, 1 being the gateway. Since multicast is likely not implemented or disabled, we can use the gateway IP as if it is the multicast discovery IP.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.