Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider using sctp-rs crate? #157

Open
gabhijit opened this issue Jan 31, 2023 · 2 comments
Open

Consider using sctp-rs crate? #157

gabhijit opened this issue Jan 31, 2023 · 2 comments

Comments

@gabhijit
Copy link

gabhijit commented Jan 31, 2023

@nplrkn :

This is an interesting project. I was looking at 'sctp' implementation in your code. In fact it was the same problem that I had faced, that there was no usable SCTP implementation in the Rust world, hence I started developing sctp-rs crate, which provides nice Rust APIs using Rust data structures and only using libc. The crate is modeled on RFC6458 (and not exactly aligned with webrtc-sctp style APIs). Also, it tries to be like Listener, TcpStream like structures which the users are used in the Rust world.

If you are considering refactoring - I would definitely suggest taking a look at this particular crate. This crate does not depend on any SCTP library being present and only makes use of libc calls internally.

Let me know what are your thoughts, I may send a couple of PRs to integrate that.

Here's the link to the project https://github.com/gabhijit/ellora

@nplrkn
Copy link
Owner

nplrkn commented Feb 2, 2023

Hi @gabhijit , that would be great and I would gladly integrate a PR from you. It would be nice to have a clean API rather than the one I kludged together quickly,

My main priorities for the supported function:

  • actually used today

    • async
    • non blocking I/O
    • error messages (can't bind, can't connect)
    • heartbeat and no delay sockopts
  • might want to integrate in next year or so (...my progress is slow!)

    • ability to set and receive stream ID
    • back pressure.

One interesting point I ran into is error handling follow async connect. My code in SctpAssocation::establish() implements this: https://cr.yp.to/docs/connect.html .

@gabhijit
Copy link
Author

gabhijit commented Feb 10, 2023

@nplrkn : Sorry this got missed somehow. Sure will consider it when I find some free cycles!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants