13 repositorios
Mechanisms for exchanging data and invoking functions between a custom language and the JavaScript runtime.
Distinct from JavaScript Interoperability: None of the candidates specifically cover general Lisp-to-JS interoperability without focusing on specific frameworks like Elixir.
Explore 13 awesome GitHub repositories matching programming languages & runtimes · JavaScript Interoperability. Refine with filters or upvote what's useful.
V8 is a high-performance JavaScript and WebAssembly engine designed to compile and execute code within host applications. It functions as an embeddable scripting engine and just-in-time compiler, providing a portable library for integrating dynamic script execution into native software environments. The engine incorporates a WebAssembly runtime to execute compiled binary code for a stack-based virtual machine at near-native speeds. It enables native application scripting by allowing a JavaScript execution environment to be embedded directly into a native program to handle dynamic logic. The
Facilitates the execution and interoperability of JavaScript and WebAssembly within the same runtime environment.
This project is a Lisp interpreter implementation guide and framework designed to teach the core principles of programming language design. It provides a structured, step-by-step technical framework for building a functional Lisp language from scratch, featuring a specialized interpreter engine and an S-expression parser that converts syntax into abstract syntax trees. The project emphasizes a code-as-data metaprogramming framework, enabling the implementation of macros, quoting, and quasiquoting to transform expressions during evaluation. It is designed with host language agnosticism, allowi
Integrates the Lisp environment with JavaScript to call external methods and exchange data.
ClojureScript is a Lisp-based compiler and runtime that translates Clojure source code into JavaScript. It enables functional programming across different JavaScript engines and platforms, allowing developers to build user interfaces and applications for web browsers and server environments. The project provides a read-eval-print loop for executing code live within a browser or server for immediate feedback. This facilitates an interactive development workflow where code can be written and tested in real time without restarting the application. The system covers a broad capability surface, i
Provides essential mechanisms for exchanging data and invoking functions between ClojureScript and the JavaScript runtime.
wasm-bindgen es un generador de bindings y capa de interoperabilidad diseñada para mapear tipos de datos y funciones a través del límite entre WebAssembly y JavaScript. Funciona como una interfaz de función extranjera que sintetiza el boilerplate necesario para permitir la comunicación bidireccional entre Rust y el runtime del navegador. El proyecto genera código de pegamento y envoltorios que automatizan la conversión de tipos complejos, permitiendo que las funciones de Rust se exporten como módulos de JavaScript y que las APIs del navegador se importen a Rust. Utiliza macros procedimentales para definir estas interfaces y sintetiza bindings basados en definiciones de tipos de Rust. El sistema gestiona la memoria a través del paso de punteros de memoria lineal y maneja el intercambio de recursos utilizando manejadores de memoria gestionados por JavaScript. Se basa en una convención de llamada compatible con la ABI de C para pasar enteros primitivos y flotantes entre el módulo y el host.
Manages the exchange of complex data types, functions, and memory between WebAssembly and JavaScript.
wasm-bindgen is a glue code generator and interoperability tool that facilitates high-level communication and data exchange between compiled Rust modules and JavaScript environments. It functions as a memory bridge and type definition generator, allowing the exchange of complex data types and the calling of functions across execution boundaries. The project distinguishes itself by automating the conversion of data types and function signatures using attribute-based bindings. It generates the necessary JavaScript and WebAssembly wrappers to manage linear memory mapping and creates automatic Ty
Facilitates high-level communication and data exchange between compiled Rust modules and the host JavaScript environment.
miniblink49 is a stripped-down Blink browser kernel and embedded web UI framework used to integrate HTML user interfaces into native C++ applications. It functions as a C++ JavaScript interop bridge that maps high-level script calls to low-level native logic and provides a resource-optimized headless browser engine for processing web content without a graphical interface. The project enables custom browser environment control by bypassing cross-origin security policies to allow requests across different domains. It further allows for the interception of network resources to replace remote ass
Maps high-level JavaScript function calls to low-level C++ logic through member pointers and internal callbacks.
This project is a functional programming compiler and JavaScript transpiler that transforms a statically typed language into optimized JavaScript for web browsers. It serves as a frontend architecture framework, providing a static type system and a package manager that enforces semantic versioning. The compiler uses a type-checking engine with automatic type inference to prevent runtime errors and guide code refactoring. It implements a structural pattern for managing application state and rendering user interfaces through a virtual DOM, utilizing immutable data and purity-based state transit
Integrates external JavaScript logic and DOM elements into a typed application via ports and custom elements.
ReScript is a statically typed programming language and compiler designed to transform type-safe source code into efficient, human-readable JavaScript. It functions as a transpiler that enforces data consistency and prevents runtime errors through static type analysis for both web and server applications. The project distinguishes itself as an incremental build system that analyzes dependency graphs to recompile only modified files and their dependents. It includes a JSX compatible compiler for building user interfaces and provides a framework for bridging type-safe code with existing JavaScr
Bridges the type-safe language with the JavaScript runtime for exchanging data and invoking functions.
Brython is a Python 3 runtime and interpreter that executes scripts directly in the web browser. It serves as a client-side environment that translates Python source code into executable JavaScript to handle frontend logic without requiring server round-trips. The project provides a bidirectional interoperability bridge between Python and JavaScript, allowing for the integration of external JavaScript libraries. It further functions as a tool for packaging Python scripts into standalone native mobile applications for Android devices. The runtime includes a library for programmatic manipulati
Provides a bidirectional bridge for exchanging data and invoking functions between the Python runtime and JavaScript libraries.
Datascript es un almacén de estado inmutable en memoria y un almacén de triples basado en esquemas. Gestiona el estado de la aplicación como una base de datos versionada, almacenando datos como hechos inmutables que consisten en una entidad, atributo, valor y transacción. El proyecto proporciona un motor lógico para ejecutar consultas Datalog con soporte para joins implícitos, reglas recursivas y negación. También cuenta con una API de extracción declarativa para recuperar grafos de entidades profundamente anidados y estructuras de datos relacionadas. La base de datos impone la integridad de los datos a través de restricciones basadas en esquemas y tipos de atributos. Admite transacciones atómicas, protocolos de almacenamiento conectables para persistencia e indexación de atributos B-tree para optimizar las búsquedas. El sistema está diseñado para su uso en entornos Clojure, ClojureScript y JavaScript.
Integrates with JavaScript engines to allow queries and transactions using standard arrays and objects.
Documents how to share data and functions between JavaScript and WebAssembly modules.
Scala.js es un compilador y cadena de herramientas de lenguaje multiplataforma que transforma código fuente de Scala en JavaScript o WebAssembly. Funciona como una herramienta tipada estáticamente para el ecosistema JavaScript, permitiendo el desarrollo de aplicaciones para navegadores web y entornos Node.js. El proyecto sirve como framework de interoperabilidad con JavaScript, permitiendo la creación de fachadas y bindings tipados de forma segura para interactuar con librerías externas y objetos globales. Proporciona mecanismos para la invocación de JavaScript tanto estática como dinámica, incluyendo la generación de bindings de TypeScript y la capacidad de exportar lógica interna para su uso en código JavaScript externo. La cadena de herramientas incluye una herramienta de construcción frontend para empaquetado de producción y optimización de salida, incluyendo eliminación de código muerto y división de módulos. Cubre una amplia superficie de capacidades, incluyendo verificación de tipos de elementos DOM para desarrollo de UI, intercambio de código multiplataforma para desarrollo full-stack y varios frameworks de pruebas para verificar artefactos de construcción optimizados. Los scripts compilados pueden ejecutarse directamente dentro de un entorno de línea de comandos utilizando un intérprete de JavaScript.
Provides a framework for creating type-safe facades and bindings to interact with external JavaScript libraries and APIs.
TeaVM is a Java bytecode transpiler and browser-based JVM runtime that converts compiled Java class files into JavaScript or WebAssembly. It functions as a compiler and build pipeline tool that enables applications written in various JVM languages to execute natively within a web browser. The project distinguishes itself by transforming bytecode directly into optimized web formats without requiring the original source code. It includes a WebAssembly bytecode compiler for high-performance execution and a specialized emulation system to handle asynchronous multithreading within the single-threa
Provides mechanisms for exchanging data and invoking functions between the JVM runtime and the native JavaScript environment.