Giter VIP home page Giter VIP logo

netcode-rs's Introduction

netcode-rs

Pure Rust implementation of the netcode.io protocol.

Standard version 1.02 is supported.

Note: netcode-rs is not production ready yet. There are outstanding issues and insufficient test coverage which currently blocks publication on crates.io. Contributions are welcome, of course!

Original implementation

netcode-rs is built on top of the work of these awesome people:

Motivation

There are several problems with the currently published netcode crate:

  • It uses libsodium for encryption, which is a C dependency. There are multiple pure Rust AEAD implementations which can be used instead.
  • It's not maintained anymore, thus it only supports protocol version 1.01 and lacks important fixes which were implemented in the reference C implementation in the meantime.

netcode-rs aims to provide an up-to-date, pure Rust implementation which solves these issues.

netcode-rs's People

Contributors

yzsolt avatar

Watchers

 avatar  avatar

netcode-rs's Issues

Connection timeout is unused

The connection timeout parameter has been plumbed through the connect token and its private data in this commit, but it's still not used anywhere as a timeout. KeepAliveState is probably the best place for it, however the C implementation has no corresponding abstraction so it should be thoroughly examined first (as Channel also seems to do things a little bit differently than the C version).

Possible time inaccuracy in Client::update

Client::update takes a time delta and adds it to its internal time. Since time is stored as f64, this can lead to inaccuracies in the long run. We should take the current time instead, similar to the C implementation.

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.