Make nanonext compatible with existing NNG 1.5.2 release #10
Closed
shikokuchuo
started this conversation in
Ideas
Replies: 1 comment 2 replies
-
Thanks for looping me in. I think the bundled NNG would make a good default because it is a nudge towards consistency across different user installations. Having that consistency will make our jobs easier when folks ask for help. Also, some users may be running |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
NNG is essentially feature-complete and stable (although there are interesting 3rd party open-source extensions).
nanonext
was compatible up until v0.5.1 when Garrett D'Amore author of NNG implemented nanomsg/nng@722bf46 to make aio more efficient for a single-threaded language binding such as R.It wouldn't be too difficult to re-implement the solution used previously with some notable improvements, such as a central shared mutex. This would be slightly less performant, but for applications such as
crew
, this would be inconsequential.This can be implemented via a compile time define - using the 'fast path' if the library supports, or a 'compatibility mode' for existing library releases.
This would address concerns such as #6 as it will realistically take quite some time for a new NNG release to make it into distro repos, and existing LTS repos with mostly NNG 1.5.2 release can be very long-lived.
An env var can be used to allow the user to select what to do if there is a suitable system lib. Question then would be whether to make the bundled NNG default, or an older system library. Usually the system lib would take precedence, but most end-users would benefit from the improvements in the newer library. It could be said that those in settings which require the system lib would know to set the env var as appropriate. Any thoughts @wlandau?
Beta Was this translation helpful? Give feedback.
All reactions