Comments (4)
totally agree.
NNG is implemented in C, requiring only C99 and CMake to build
so user would need to have a CMAKE to build it
and i wonder if there's a nice way to do an npm install with a cmake process
@nickdesaulniers, are you aware of anything like that?
@nullr0ute, we're building libnanomsg in the old school autoconf style but skipping ./configure
by kind of doing from that from gyp... which is not exactly intuitive. so instead of cmake we've managed to bake ./configure
script into node's gyp toolchain and just using that to pass compiler flags
just based on how hard that whole thing is to get right, i would imagine an npm-cmake would be better
from node-nanomsg.
I don't know enough about the build process to comment, but nng
has API compatibility with nanomsg
as one of its core aims, so once the cmake
change is made there may only be a few changes required to the node-nanomsg
C++ files.
Today
nng
offers this. You can relink an existingnanomsg
binary againstlibnng
instead oflibnn
, and it usually Just Works™. Source compatibility is almost as easy, although the application code needs to be modified to use different header files. I am considering changing the include file in the future so that it matches exactly the nanomsg include path, so that only a compiler flag change would be needed.
https://nanomsg.github.io/nng/RATIONALE.html
from node-nanomsg.
from node-nanomsg.
I think nng should be a different library than node-nanomsg.
after looking into NNG a bit more I agree with Nick, we can close this issue/question
problem 1
Nng may be api compatible, but I'll bet it's not abi compatible, so it's not like it's a drop in replacement for us.
a lot of new api plus clearly something there to preserve our current libnanomsg operations:
// This file supplies the legacy compatibility API. Applications should
// avoid using these if at all possible, and instead use the new style APIs.
https://github.com/nanomsg/nng/blob/master/src/compat/nanomsg/nn.c
Not the real issue! Interface compatibility is like the last hurdle to an nng integration w/ nodejs
problem 2
this is our real issue and the basis for separating a node-nng module into a different binding
we have the nontrivial prerequisite to build and compile nng as C/C++11 binaries for direct execution from the node.js runtimes. nng uses a totally different build process than the versions of libnanomsg we're building for nodejs
from node-nanomsg.
Related Issues (20)
- duplicate receive messages arriving? HOT 1
- nn_send assert when IPv4only option was disabled, and try to connect with IPv4 address HOT 1
- Error handling HOT 3
- TypeError: Path must be a string. Received undefined HOT 2
- rfc links
- Compile error in Node V12.* HOT 6
- vulnerable dependencies HOT 1
- deprecation warning from Nan::Callback::call HOT 2
- DeprecationWarning: Buffer HOT 2
- remove package-lock.json from .gitignore HOT 2
- fallthrough warnings in nanomsg HOT 1
- are we handling scopes correctly? HOT 1
- How do i catch timeout on reqrep?
- Carsh When msg send 10K per second HOT 2
- Electron compatibility: "Loading non-context-aware native module in renderer" HOT 1
- node 14.15 compatability HOT 1
- (node:660) electron: The default of contextIsolation is deprecated and will be c hanging from false to true in a future release of Electron. HOT 2
- Double handle scope
- -Wcast-function-type in nodejs/src/node.h
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-nanomsg.