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

NNG 1.6 #34

Open
Bajix opened this issue Nov 26, 2023 · 8 comments
Open

NNG 1.6 #34

Bajix opened this issue Nov 26, 2023 · 8 comments

Comments

@Bajix
Copy link

Bajix commented Nov 26, 2023

Just wanted to let you know @gdamore just released NNG 1.6

@neachdainn
Copy link
Collaborator

I saw that and I'm planning on making use of it soon. That being said:

@jeikabu I think we need to change up the versioning scheme and, as a side effect, the way we include libnng. Right now, with the versioning scheme we have, every single version of nng-sys is incompatible with every other version meaning that any project which attempts to use different NNG versions (no matter how deeply nested in the dependency tree) will have conflicts and will not be able to compile.

IIRC, the original motivation for using the versioning scheme we have now is to allow people to easily identify which version of NNG is being used. We have a better method for doing that, though: linking against a version of libnng that isn't bundled with this crate, which probably should be the default way of building the crate in general. What we should actually care about is which versions of libnng which are compatible with this crate. In this regard, I would much prefer having an nng-sys crate that provides the libnng v1.0 API with additional features being used to bring in additional API from later versions of libnng.

Doing it this way, we would then have a crate that can be used with multiple different versions in the same binary, correctly marks building the bundled libnng as opt-in, and will be compatible with many versions of libnng all while preserving the ability for the user to select which version of libnng they want to use.

@neachdainn
Copy link
Collaborator

NNG versions 1.7 and 1.7.1 have now also been released. Given some recent discussion, I am probably going to move ownership of nng-sys and nng-rs to the Nanomsg organization and execute the above idea.

@tsagadar
Copy link

tsagadar commented Apr 3, 2024

Are there any updates on the work described above. Having more flexibility in using newer nng versions would be much appreciated.

@jeikabu
Copy link
Owner

jeikabu commented Apr 4, 2024

We migrated away from NNG and went pure Rust a while back. Better latency/throughput and stability on Windows. Don’t have any projects using NNG anymore.

I requested to transfer the repo to @neachdainn since I think he owned the cargo crate. You have my full blessing to do whatever you please ~

@neachdainn
Copy link
Collaborator

@tsagadar I am in the process of moving all of the NNG related Rust projects into the ownership of the Nanomsg organization, so you can expect updates in the next few weeks (unless my dissertation work keeps me swamped). That being said, you should be fully capable of using new versions of NNG with both nng-sys and nng-rs by simply linking to a pre-built NNG library. Having the NNG shared library be built by default is actually something I think I want to change going forward.

@jeikabu I didn't click on the link soon enough but, given the above, I think ownership over this repository is moot.

@Bajix
Copy link
Author

Bajix commented Apr 19, 2024

We migrated away from NNG and went pure Rust a while back.

@jeikabu what crate(s) are you using instead?

@tsagadar
Copy link

@neachdainn Thanks for the update. As an interim solution we forked the two repositories and updated the nng submodule to version 1.7.3. This seems to work well. Looking forward to switch to the new approach that you plan to implement.

@tsagadar
Copy link

tsagadar commented Oct 8, 2024

@neachdainn yesterday, nng 1.9.0 got released. So in the next few weeks we will look into upgrading to this version. Any plans from your side to implement above changes this year? If yes, then we would rather wait and integrate / test your changes. Otherwise we try once more to upgrade using our fork.

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

4 participants