https://github.com/metarhia/metavm
Script loader with isolated sandboxes for node.js 📦
https://github.com/metarhia/metavm
isolation metarhia sandboxing script-loader v8 vm
Last synced: 16 days ago
JSON representation
Script loader with isolated sandboxes for node.js 📦
- Host: GitHub
- URL: https://github.com/metarhia/metavm
- Owner: metarhia
- License: mit
- Created: 2020-09-21T06:12:08.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-01-04T21:32:50.000Z (4 months ago)
- Last Synced: 2025-03-30T22:11:18.162Z (23 days ago)
- Topics: isolation, metarhia, sandboxing, script-loader, v8, vm
- Language: JavaScript
- Homepage: https://metarhia.com
- Size: 267 KB
- Stars: 44
- Watchers: 11
- Forks: 7
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# Metarhia script loader, node.js vm wrapper
[](https://github.com/metarhia/metavm/actions?query=workflow%3A%22Testing+CI%22+branch%3Amaster)
[](https://snyk.io/test/github/metarhia/metavm)
[](https://badge.fury.io/js/metavm)
[](https://www.npmjs.com/package/metavm)
[](https://www.npmjs.com/package/metavm)
[](https://github.com/metarhia/metavm/blob/master/LICENSE)## Create script from string
Script contains object expression. You can use it for configs, network packets,
serialization format, etc.```js
const metavm = require('metavm');const src = `({ field: 'value' });`;
const ms = metavm.createScript('Example', src);
console.log(ms);
```Output:
```js
MetaScript {
name: 'Example',
script: Script {},
context: {},
exports: { field: 'value' }
}
```Script contains function expression. You can use it for api endpoints, domain
logic stored in files or database, etc.```js
const metavm = require('metavm');const src = `(a, b) => a + b;`;
const ms = metavm.createScript('Example', src);
console.log(ms);
```Output:
```js
MetaScript {
name: 'Example',
script: Script {},
context: {},
exports: [Function]
}
```## Read script from file
```js
const metavm = require('.');(async () => {
const ms = await metavm.readScript('./test/examples/simple.js');
console.log(ms);
})();
```Output:
```
MetaScript {
name: 'simple',
script: Script {},
context: {},
exports: { field: 'value', add: [Function: add], sub: [Function: sub] }
}
```## License & Contributors
Copyright (c) 2020-2024 [Metarhia contributors](https://github.com/metarhia/metavm/graphs/contributors).
Metavm is [MIT licensed](./LICENSE).\
Metavm is a part of [Metarhia](https://github.com/metarhia) technology stack.