awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
tjanczuk avatar

tjanczuk/edge

0
View on GitHub↗
5,439 stars·633 forks·C++·18 viewstjanczuk.github.io/edge↗

Edge

This project is a polyglot runtime bridge and interop framework designed to execute .NET and Node.js code within a single operating system process. It functions as a cross-runtime execution engine and in-process scripting host, enabling bidirectional communication and data exchange between the Common Language Runtime and JavaScript environments to eliminate cross-process communication overhead.

The framework distinguishes itself by providing a system for bidirectional asynchronous callbacks and automatic data marshalling of binary buffers and serializable values between different managed object types. It allows for the compilation and execution of source files or inline scripts from multiple languages within a running application by leveraging a common compiler model.

The project covers a broad range of capabilities including asynchronous task offloading to background threads, the integration of external logic as web framework middleware, and asynchronous SQL execution. It also provides observability tools for cross-runtime exception mapping and supports both managed and native process debugging.

Features

  • In-Process Runtimes - Runs .NET and Node.js environments within a single operating system process to eliminate cross-process communication overhead.
  • Asynchronous Callbacks - Provides non-blocking data exchange using asynchronous callbacks for bidirectional communication between .NET and JavaScript runtimes.
  • Native Data Marshallers - Implements automatic marshalling of binary buffers and serializable values between different managed object types across runtimes.
  • In-Process Scripting Hosts - Embeds a compiler and execution environment to run dynamic scripts or source files inside a running application.
  • Scripting Hosts - Provides a host for compiling and running source files or inline scripts from multiple languages within a running application.
  • Bidirectional Function Proxies - Enables passing functions or delegates between runtimes to allow asynchronous callbacks across execution environments.
  • Cross-Language Data Exchange - Facilitates the bidirectional movement of objects and functions between a host language and a guest script runtime.
  • JavaScript Interop - Integrates JavaScript functions and .NET code within a single process to share data and logic without network latency.
  • JavaScript Function Invocations - Allows the asynchronous invocation of specific JavaScript functions from within a .NET environment.
  • JavaScript-.NET Runtime Interop - Provides a system for executing .NET and JavaScript code within a single process to eliminate cross-process communication overhead.
  • Language Runtime Bridges - Bridges different managed object types to marshal binary buffers and serializable values across operating systems.
  • Multi-Language Script Execution - Executes multiple scripting languages within a single application using a common compiler model.
  • Polyglot Execution Environments - Runs multiple programming languages in one application process to leverage specific library strengths across different runtime environments.
  • Cross-Runtime Execution Engines - Enables bidirectional asynchronous callbacks and data exchange between the CLR and JavaScript runtimes.
  • In-Memory Compilers - Compiles source files or inline scripts directly within the process memory for immediate execution.
  • Script Proxies - Compiles scripts from target languages into delegates and exposes them as proxies for seamless execution.
  • Standardized Assembly Interfaces - Uses a standardized assembly model to integrate multiple scripting languages into a single execution environment.
  • Blocking Task Offloaders - Moves heavy computational work from a main event loop to separate threads to maintain application responsiveness.
  • Thread Pool Offloading - Offloads CPU-intensive tasks to background threads to prevent blocking the main runtime event loop.
  • Runtime Code Compilation - Compiles source scripts into delegates at runtime to execute managed code within the current process.
  • Cross-Runtime Exception Translation - Translates native exceptions into standard error objects to maintain consistent error handling across execution environments.
  • Integration Middleware - Integrates external web applications into a web framework by acting as middleware or request handlers.
  • Cross-Platform Runtimes - Enables the execution of compiled assemblies and language-specific code across multiple operating systems.
  • JavaScript Engines - Run .NET and Node.js code in-process across multiple platforms.

Star history

Star history chart for tjanczuk/edgeStar history chart for tjanczuk/edge

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Edge

These projects share indexed features with Edge. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • dop251/gojadop251 avatar

    dop251/goja

    6,914View on GitHub↗

    Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded scripting engine that allows Go applications to execute JavaScript code and integrate a programmable scripting layer without relying on Cgo or external native dependencies. The project functions as a bridge between Go and JavaScript, enabling bidirectional data exchange and function invocation. It allows Go hosts to expose native structs, slices, and maps as JavaScript objects and arrays, while providing mechanisms to export script values and functions back into native Go type

    Go
    View on GitHub↗6,914
  • pedant/safe-java-js-webview-bridgepedant avatar

    pedant/safe-java-js-webview-bridge

    2,415View on GitHub↗

    This library provides a secure communication bridge for Android applications, enabling interaction between native Java code and web-based JavaScript interfaces within a WebView. It facilitates the invocation of native system methods from web scripts and manages the exchange of data across the language boundary. The framework utilizes a prompt-based interception layer to validate method signatures before execution, ensuring that only authorized native code is triggered. It supports complex data exchange through structured serialization and provides a mechanism for mapping native methods to web

    JavaScript
    View on GitHub↗2,415
  • nodejs/node-addon-apinodejs avatar

    nodejs/node-addon-api

    2,400View on GitHub↗

    This project provides a header-only C++ wrapper for the Node-API, serving as a framework for building high-performance native addons for Node.js. It acts as a bridge between C++ and JavaScript, offering an object-oriented interface that simplifies the creation of compiled extensions while managing the complexities of the language boundary. The library distinguishes itself by providing type-safe abstractions for data marshalling and memory management, ensuring that native and script-side objects are tracked and reclaimed correctly. It includes mechanisms for coordinating asynchronous tasks bet

    C++nodenodejs
    View on GitHub↗2,400
  • polynote/polynotepolynote avatar

    polynote/polynote

    4,595View on GitHub↗

    Polynote is a polyglot notebook environment and interactive document system designed for executing code in multiple languages within a single document. It functions as a cross-language data analysis tool and a JVM language IDE, allowing users to combine executable code, rich text, and data visualizations to prototype and document technical workflows. The system is distinguished by its ability to share data and variables between different language runtimes, such as Python and the JVM. It uses cross-language object conversion and data wrapping to pass objects between runtimes, enabling multi-la

    Jupyter Notebook
    View on GitHub↗4,595
Compare all 30 related projects→

Frequently asked questions

What does tjanczuk/edge do?

This project is a polyglot runtime bridge and interop framework designed to execute .NET and Node.js code within a single operating system process. It functions as a cross-runtime execution engine and in-process scripting host, enabling bidirectional communication and data exchange between the Common Language Runtime and JavaScript environments to eliminate cross-process communication overhead.

What are the main features of tjanczuk/edge?

The main features of tjanczuk/edge are: In-Process Runtimes, Asynchronous Callbacks, Native Data Marshallers, In-Process Scripting Hosts, Scripting Hosts, Bidirectional Function Proxies, Cross-Language Data Exchange, JavaScript Interop.

Which projects share features with tjanczuk/edge?

Projects with overlapping indexed features include: dop251/goja — Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded… pedant/safe-java-js-webview-bridge — This library provides a secure communication bridge for Android applications, enabling interaction between native Java… nodejs/node-addon-api — This project provides a header-only C++ wrapper for the Node-API, serving as a framework for building high-performance… polynote/polynote — Polynote is a polyglot notebook environment and interactive document system designed for executing code in multiple… roslynpad/roslynpad — RoslynPad is a browser-based C# integrated development environment and interactive playground. It serves as a tool for… posit-dev/positron — Positron is a data science integrated development environment and AI-powered code editor designed for polyglot…