awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
patriksimek avatar

patriksimek/vm2

0
View on GitHub↗
4,083 Stars·326 Forks·JavaScript·MIT·4 Aufrufe

Vm2

vm2 ist eine Node.js-JavaScript-Sandbox und Laufzeit-Virtualisierer, der für die Ausführung von nicht vertrauenswürdigem Code entwickelt wurde. Er fungiert als sicherer Code-Evaluator und Modul-Isolator, der den Host-Prozess durch die Schaffung einer isolierten Ausführungsumgebung mit eingeschränktem Zugriff auf die Node.js-Runtime schützt.

Das System zeichnet sich durch ein Sicherheitsframework aus, das Objekt-Proxying und Deep-Freezing nutzt, um zu verhindern, dass sandboxed Skripte den globalen Host-Kontext oder gemeinsam genutzte Objekte modifizieren. Es implementiert eine strikte Modul-Zugriffskontrolle unter Verwendung von Allow-Lists und Pfadbeschränkungen, um zu steuern, welche integrierten oder externen Abhängigkeiten geladen werden können.

Das Projekt deckt breite Funktionsbereiche ab, einschließlich Ressourcenmanagement, bei dem es die Speicherzuweisung für Puffer begrenzt und Ausführungs-Timeouts erzwingt, um Denial-of-Service-Angriffe zu verhindern. Es bietet zudem Dateisystem-Zugriffsbeschränkungen und Tools für Interoperabilität zwischen Sandboxes sowie die Umleitung von Konsolenausgaben.

Eine Befehlszeilenschnittstelle ist für die direkte Ausführung von JavaScript-Dateien innerhalb der isolierten Sandbox-Umgebung verfügbar.

Features

  • Isolated Code Execution - Provides a secure environment for executing untrusted third-party JavaScript code while protecting the host Node.js process.
  • Node.js Sandboxing - Protects the host Node.js process from malicious scripts by limiting memory, execution time, and global object access.
  • Runtime Virtualizers - Acts as a runtime virtualizer that protects the host global context through object proxying and property freezing.
  • Script Execution Timeouts - Implements watchdog mechanisms to terminate embedded scripts that exceed a specified execution time limit.
  • Buffer Memory Caps - Caps the size of memory allocation requests for buffers to prevent malicious scripts from causing memory exhaustion.
  • Sandbox Module Loader Emulators - Mimics a standard module loader to provide configurable control over which external dependencies are accessible to sandboxed code.
  • Dynamic Script Execution - Evaluates and runs JavaScript source code or precompiled scripts within a controlled context at runtime.
  • Module Access Control - Filters requested Node.js modules through a predefined allow-list of names and paths before loading.
  • Object Protections - Restricts the ability of sandboxed scripts to attach new functions to objects, preventing prototype pollution and unauthorized modifications.
  • Proxy Objects - Wraps host objects in proxies to intercept property access and prevent unauthorized mutations or leaks.
  • Sandboxed JavaScript Execution - Provides an isolated execution environment for running untrusted JavaScript code with restricted Node.js runtime access.
  • Module Access Restrictions - Prevents untrusted scripts from importing unauthorized or protected Node.js modules via access restrictions.
  • Filesystem Access Restrictions - Provides mechanisms to restrict sandboxed code to specific directories or file paths to prevent unauthorized disk access.
  • Buffer Allocation Limits - Provides mechanisms to cap the size of individual memory allocation requests for buffers to prevent resource exhaustion.
  • Object Freezing - Recursively freezes shared objects to ensure they are read-only and prevent sandboxed scripts from modifying host state.
  • Object Sealing and Freezing - Implements object sealing and freezing to make proxied objects read-only, preventing property modification or deletion.
  • Module Loading Filters - Restricts which built-in and external Node.js modules can be imported using strict allow-lists.
  • Sandbox Resource Caps - Enforces execution timeouts and memory ceilings to protect the host system from denial-of-service attacks by untrusted scripts.
  • Execution Resource Limiters - Sets memory limits and execution timeouts to protect the host process from resource exhaustion and DoS attacks.
  • Runtime Context Isolation - Creates isolated execution environments by managing distinct global objects and heaps for each script run.
  • Compiled Script Caches - Caches pre-compiled script representations to accelerate repeated execution and reduce redundant processing.
  • Canonical Path Resolution - Implements canonical path resolution to ensure file paths are absolute and unique, preventing directory traversal attacks.
  • Ahead-Of-Time Compilation - Implements ahead-of-time compilation of source code into a cached binary format to reduce repeated execution overhead.
  • Context-Isolated Invocations - Provides a secure way to call functions inside the sandbox by cloning arguments to protect the host global context.
  • Inter-Sandbox Communication - Allows secure data exchange and callback invocation between multiple isolated sandbox environments.
  • Secure Code Evaluators - Executes scripts with strict memory and execution time limits to prevent denial-of-service attacks on the host.
  • Sandboxing - Advanced virtual machine/sandbox for Node.js.

Star-Verlauf

Star-Verlauf für patriksimek/vm2Star-Verlauf für patriksimek/vm2

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Häufig gestellte Fragen

Was macht patriksimek/vm2?

vm2 ist eine Node.js-JavaScript-Sandbox und Laufzeit-Virtualisierer, der für die Ausführung von nicht vertrauenswürdigem Code entwickelt wurde. Er fungiert als sicherer Code-Evaluator und Modul-Isolator, der den Host-Prozess durch die Schaffung einer isolierten Ausführungsumgebung mit eingeschränktem Zugriff auf die Node.js-Runtime schützt.

Was sind die Hauptfunktionen von patriksimek/vm2?

Die Hauptfunktionen von patriksimek/vm2 sind: Isolated Code Execution, Node.js Sandboxing, Runtime Virtualizers, Script Execution Timeouts, Buffer Memory Caps, Sandbox Module Loader Emulators, Dynamic Script Execution, Module Access Control.

Welche Open-Source-Alternativen gibt es zu patriksimek/vm2?

Open-Source-Alternativen zu patriksimek/vm2 sind unter anderem: rhaiscript/rhai — Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications.… hyperlight-dev/hyperlight — Hyperlight is an embedded virtual machine manager designed to execute guest binaries within hardware-isolated code… vndee/llm-sandbox — This project provides a secure, containerized execution engine designed to run untrusted code within isolated… atmosphere/atmosphere — Atmosphere is a Java-based framework for building and coordinating AI agents. It provides a real-time transport layer… alibaba/qlexpress — QLExpress is a dynamic scripting engine and expression language for the Java platform. It functions as a runtime… doodlewind/jshistory-cn — This project is a translated historical chronicle and programming language reference documenting the technical…

Open-Source-Alternativen zu Vm2

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Vm2.
  • rhaiscript/rhaiAvatar von rhaiscript

    rhaiscript/rhai

    5,453Auf GitHub ansehen↗

    Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications. It functions as an abstract syntax tree compiler and native interop layer, allowing developers to map Rust types and functions into a scripting environment for bidirectional communication. The project serves as a framework for creating customizable domain-specific languages. It allows for the definition of custom operators, syntax, and restricted execution environments, enabling the creation of specialized languages with tailored functional sets. The engine covers a broad rang

    Rustembeddedembedded-scripting-languageno-std
    Auf GitHub ansehen↗5,453
  • hyperlight-dev/hyperlightAvatar von hyperlight-dev

    hyperlight-dev/hyperlight

    4,462Auf GitHub ansehen↗

    Hyperlight is an embedded virtual machine manager designed to execute guest binaries within hardware-isolated code sandboxes. It utilizes a KVM micro-VM manager to run untrusted third-party code, enforcing strict memory boundaries to prevent unauthorized host access. The project features a guest-host function bridge that facilitates bidirectional communication and a state snapshot tool for saving and restoring the memory state of a sandbox to reduce startup latency. The system includes a toolchain for guest binary cross-compilation and mechanisms for managing resource constraints, such as fi

    Rusthyper-vhypervisorkvm
    Auf GitHub ansehen↗4,462
  • atmosphere/atmosphereAvatar von Atmosphere

    Atmosphere/atmosphere

    3,780Auf GitHub ansehen↗

    Atmosphere is a Java-based framework for building and coordinating AI agents. It provides a real-time transport layer for streaming data via WebSockets, SSE, gRPC, and WebTransport, alongside a multi-agent orchestration framework for managing agent fleets through sequential, parallel, and graph-based execution workflows. The project features a durable workflow engine that persists agent state as snapshots, allowing long-running tasks to survive system restarts and incorporate human-in-the-loop approvals. It also implements Model Context Protocol servers to expose tools, resources, and prompt

    Javaacpagentic-aiembabel
    Auf GitHub ansehen↗3,780
  • vndee/llm-sandboxAvatar von vndee

    vndee/llm-sandbox

    1,082Auf GitHub ansehen↗

    This project provides a secure, containerized execution engine designed to run untrusted code within isolated environments. It functions as a library for integrating code interpretation into autonomous agents and intelligent assistant workflows, ensuring that host systems remain protected while enabling dynamic data processing and file manipulation. The platform distinguishes itself through a multi-backend architecture that abstracts diverse container runtimes, allowing for flexible deployment and automated backend failover. It supports interactive, multi-turn workflows by maintaining persist

    Pythoncode-generationcode-interpreterlarge-language-models
    Auf GitHub ansehen↗1,082
  • Alle 30 Alternativen zu Vm2 anzeigen→