-
Notifications
You must be signed in to change notification settings - Fork 528
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
bcrypt struggles to install on W7 64bit #102
Comments
You need to have MSVC C++ Express installed and the Windows 64-bit SDK. See: https://github.com/TooTallNate/node-gyp#installation |
Just FYI This is something that really puts me off using the bcrypt package. |
Well, gyp is the build tool we use which uses the microsoft build tools. What are your aversions to installing the requirements outside of it being a "cancer" on a system. Specifically what are your gripes with using msbuild to compile the module? |
My specific gripe is that out of 3 of 4 windows 7 machine I have I can't install the SDK because it fails to install. Same applies to windows updates and a variety of other MS packages. I'd literally have to format my machine and install from blank to install bcrypt.. I guess the "cancer" thing was a little strong, perhaps "anthrax" is more apt ;) I'm not having a go at MS or VSS or the MS SDK, it's just anything that depends on them to compile imho is risking excluding itself from quite a large audience of people who just can't justify a 1.6GB download to install a 5MB node app. For now I'm doing my dev on a linux box to save the headache but when customers come to deploy I can't ask them to install the Microsoft SDK so I'm left with two options which is..
You guys are doing a great job and I don't want to sound like I'm nagging but I do feel if you can find a way to make it compile on windows without the MS SDK you will make your module better.. |
same problem to me on 64-bit window |
Been trying to get node.bcrypt.js working on my Windows8 64bit for the past week. Downloading about 2GB worth of stuff with my slow internet wasn't fun. The fact that the Windows SDK simply failed to start downloading (without throwing any errors) didn't help either. Finally I got it all installed. But nodegyp -rebuild still failed. I gave up and created a native implementation of bcrypt for nodejs. You can find it at https://github.com/shaneGirish/bcrypt-nodejs Its API resembles the API of node.bcrypt.js and I've done some minor testing which doesn't seem to show any problems as of yet. Also, I'm not sure how it compares to node.bcrypt.js in speed but its worth a look, I guess. |
You sir, are a very kind old chap. Good work! |
One quick comment I would make is that your async versions are not actually async in the way that you think. While you do use setTimeout (process.nextTick would be better), they don't actually run in separate threads and thus will block the node process when they do execute. |
So, do I have to use something like https://github.com/cramforce/node-worker or is there an easier or better way ? Please advice. |
Not sure I would go the webworker route personally (but it could work depending on how it is implemented). Realistically you would need to spin up a pool of nodejs processes and hand off the work to them. I believe this can be done with childprocess.fork which will give you the built in IPC channel to pass off the work and wait for response. The worker would be the one who then runs the sync code and returns the results. I am sure there is a module that does this just don't know of any off the top of my head. Would not be that hard to make it if it doesn't already exist. IIRC one of the mozilla browserid folks did something similar. /ping @lloyd |
I just ran into https://github.com/robtweed/Q-Oper8 and https://github.com/kriszyp/multi-node Creating more process has a memory overhead. I remember reading that each node process uses up atleast 10Mb. |
If I understood this correctly, it is simply a matter of picking the best suited solution. Multiple processes would be best suited for an environment which has a lot of memory to spare. WebWorkers, when the environment forces you to be stingy. |
Yo @shtylman ! @shaneGirish - I'd suggest don't bother with async versions. Use one of the things mentioned above or lloyd/node-computecluster At mozilla in the persona project we're using this library on large scale deployments, and we intentionally do not use the async calls of this library (which use nodes internal threadpool) and instead use multiple processes. Here's a talk I did about our approach: http://www.youtube.com/watch?v=U0hNgO5hrtc hth! |
python and openssl installed
ssl installed in C:\OpenSSL-Win64
openssl.exe in C:\OpenSSL-Win64\bin
The text was updated successfully, but these errors were encountered: