
Security News
The Next Open Source Security Race: Triage at Machine Speed
Claude Opus 4.6 has uncovered more than 500 open source vulnerabilities, raising new considerations for disclosure, triage, and patching at scale.
Build environment checking for node.js.
This allows for autoconf-like functionality for node addons/build scripts.
Note: Obsolete and/or exotic build environments or platforms not supported by node.js are not supported.
npm install buildcheck
'use strict';
const BuildEnvironment = require('buildcheck');
const buildEnv = new BuildEnvironment();
console.log(buildEnv.checkFunction('c', 'preadv2'));
'use strict';
const BuildEnvironment = require('buildcheck');
const buildEnv = new BuildEnvironment();
console.log(buildEnv.checkHeader('c', 'linux/io_uring.h'));
'use strict';
const BuildEnvironment = require('buildcheck');
const buildEnv = new BuildEnvironment();
// Should be a successful compile
console.log(buildEnv.tryCompile('c', 'int main() { return 0; }'));
// Should be a failed compile
console.log(buildEnv.tryCompile('c', 'int main() { return z; }'));
The exported value is BuildEnvironment, the main class for dealing with a build environment.
(constructor)([< object >config]) - Creates and returns a new BuildEnvironment instance. config may contain:
compilerC - string - C compiler command to use. Note: this is ignored on Windows. Default: process.env.CC or 'cc'
compilerCXX - string - C++ compiler command to use. Note: this is ignored on Windows. Default: process.env.CXX or 'c++'
msvs_version - mixed - A string or number containing the year of the Visual Studio compiler to use. Note: this is for Windows only. Default: newest version installed
checkDeclared(< string >lang, < string >symbolName[, < object >options]) - boolean - Checks if a symbol symbolName is declared where lang is either 'c' or 'c++'. Returns true if symbol exists, false otherwise. options may contain:
headers - array - A list of headers to try when checking if the symbol is declared. checkFunction() will always first try without a library. If not supplied, a default list of common (platform-specific) headers will be used.
searchLibs - array - A list of library names (without the '-l' prefix) to try when checking if the symbol is declared. checkDeclared() will always first try without a library.
checkFunction(< string >lang, < string >functionName[, < object >options]) - boolean - Checks if a function functionName exists and is linkable where lang is either 'c' or 'c++'. Returns true if function exists, false otherwise. options may contain:
'-l' prefix) to try when checking for this function. checkFunction() will always first try without a library.checkFeature(< string >featureName) - mixed - Executes a special test for a "feature" and returns the result. Supported values for featureName:
'strerror_r' - Returns an object containing:
declared - boolean - Whether strerror_r() is declared
returnsCharPtr - boolean - If strerror_r() is declared, whether it returns char* (a GNU extension) or not.
checkHeader(< string >lang, < string >headerName) - boolean - Checks if the header headerName exists and is usable where lang is either 'c' or 'c++'. Returns true if the header exists and is usable, false otherwise.
defines([< string >lang[, < boolean >rendered]]) - array - Returns a list of features, functions, headers, and symbols known to be defined by this build environment instance. lang is either 'c' or 'c++' If lang is not set, defines for both 'c' and 'c++' will be returned. If rendered is true (defaults to false), autoconf-style defines (e.g. "HAVE_FOO=1") will be returned instead. Defines coming from features utilize base strings/names from autoconf for better compatibility.
libs([< string >lang]) - array - Returns a list of ('-l'-prefixed) libraries known to be required for features and functions defined by this build environment instance. lang is either 'c' or 'c++' If lang is not set, defines for both 'c' and 'c++' will be returned.
tryCompile(< string >lang, < string >code[, < array >compilerParams]) - mixed - Attempts to compile code where lang is either 'c' or 'c++'. compilerParams is an optional array of compiler/linker flags to include. Returns true on successful compilation, or an Error instance with an output property containing the compiler error output.
FAQs
Build environment checking (a la autoconf) for node.js
The npm package buildcheck receives a total of 5,063,169 weekly downloads. As such, buildcheck popularity was classified as popular.
We found that buildcheck demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Claude Opus 4.6 has uncovered more than 500 open source vulnerabilities, raising new considerations for disclosure, triage, and patching at scale.

Research
/Security News
Malicious dYdX client packages were published to npm and PyPI after a maintainer compromise, enabling wallet credential theft and remote code execution.

Security News
gem.coop is testing registry-level dependency cooldowns to limit exposure during the brief window when malicious gems are most likely to spread.