Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Download and extract Pyodide packages from Github
releases
(pyodide-build-*.tar.bz2
). The version of the release needs to match exactly the version of this package.
Then you can load Pyodide in Node.js as follows,
// hello_python.js
const { loadPyodide } = require("pyodide");
async function hello_python() {
let pyodide = await loadPyodide({
indexURL: "<pyodide artifacts folder>",
});
return pyodide.runPythonAsync("1+1");
}
hello_python().then((result) => {
console.log("Python says that 1+1 =", result);
});
$ node hello_python.js
Loading distutils
Loaded distutils
Python initialization complete
Python says that 1+1= 2
Or you can use the REPL. To start the Node.js REPL with support for top level
await, use node --experimental-repl-await
:
$ node --experimental-repl-await
Welcome to Node.js v18.5.0.
Type ".help" for more information.
> const { loadPyodide } = require("pyodide");
undefined
> let pyodide = await loadPyodide();
Loading distutils
Loaded distutils
Python initialization complete
undefined
> await pyodide.runPythonAsync("1+1");
2
Node.js
versions 14.x and 16.x: to use certain features of Pyodide you
need to manually install node-fetch
, e.g. by doing npm install node-fetch
.
Node.js v14.x
: you need to pass the option --experimental-wasm-bigint
when starting Node. Note that this flag is not documented by node --help
and moreover, if you pass --experimental-wasm-bigint
to node >14 it is an
error:
$ node -v
v14.20.0
$ node --experimental-wasm-bigint hello_python.js
warning: no blob constructor, cannot create blobs with mimetypes
warning: no BlobBuilder
Loading distutils
Loaded distutils
Python initialization complete
Python says that 1+1= 2
See the documentation fore more details.
The JavaScript code in this package is responsible for the following tasks:
js/pyodide
JavaScript API into sys.modules
. This is the
final runtime dependency for core/pyodide
& py/pyodide
, so after this step
the interpreter is fully up and running.FAQs
The Pyodide JavaScript package
The npm package pyodide receives a total of 53,906 weekly downloads. As such, pyodide popularity was classified as popular.
We found that pyodide demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers 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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.