Giter VIP home page Giter VIP logo

mles-rs's People

Contributors

atul9 avatar jq-rs avatar nabijaczleweli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mles-rs's Issues

Connection id should be deterministic

In case there are a lot of connections on the channel, the random cid may cause client connections to fail. The cid should be deterministic with dependency to uid.

Add peering support for Mles v2

Add peering support to Mles v2 similar to Mles v1:

  • Peer address config via CLI
  • Send history to connecting clients when peer not connected/down

Add loop prevention

At the moment, Mles server does not prevent loops and user needs to define carefully tree-like structure for the Mles network. Add a loop prevention mechanism to Mles server which will create tree-like structure autonomously.

Resync handling broken

After cid loop fix, resync support does not work properly during server restart. There needs to be some logic when thread is canceled vs. reconnect is tried.

Add support for multiplexing channels over WebSocket

Add support for multiplexing over WebSocket proxy as specified. This would allow WebSocket client to have subscriptions to several channels over same WebSocket connection. It is already supported by the Mles protocol specification.

Example would aid in starting

Looks very nice. I like the minimalist and clear interface.

It will take some work to evaluate so easing that may help with adoption.

My questions after first look are the security model or how you would integrate one (authentication, keys ..) and redundant top level server setup to avoid a single point of failure without the looping issue which you mention there are guards for.

Add fuzz tests

Protocol input fuzzing would be nice! Maybe with cargo fuzz tests.

Could this be used with MQTT?

I'm currently using MQTT client (implemented in Rust) to push data through to server. We're using cloud solutions as MQTT server which works fine, however I'm looking for a light weight option for use cases where cloud providers cannot be used. I could use RabbitMQ with MQTT adapter but I was wondering if it's possible to use this library with adapter for MQTT. I really like the simplistic approach this library has taken - thanks for open sourcing it.

Peer cid handling stuck

In case the first connection for a peer has invalid/duplicate cid, the peer connection stays in a loop forever as it cannot update peer cid anymore.

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.