13 repository-uri
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 este un generator de binding-uri și un strat de interop conceput pentru a mapa tipurile de date și funcțiile peste granița dintre WebAssembly și JavaScript. Funcționează ca o interfață de funcții străine (FFI) care sintetizează boilerplate-ul necesar pentru a permite comunicarea bidirecțională între Rust și runtime-ul browserului. Proiectul generează cod glue și wrapper-e care automatizează conversia tipurilor complexe, permițând funcțiilor Rust să fie exportate ca module JavaScript și API-urilor browserului să fie importate în Rust. Utilizează macro-uri procedurale pentru a defini aceste interfețe și sintetizează binding-urile bazate pe definițiile de tip Rust. Sistemul gestionează memoria prin transmiterea pointerilor în memoria liniară și gestionează schimbul de resurse folosind handle-uri de memorie gestionate de JavaScript. Se bazează pe o convenție de apelare compatibilă cu C ABI pentru a transmite numere întregi primitive și float-uri între modul și 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 este un magazin de stare imutabil, în memorie, și un magazin de triplete bazat pe schemă. Gestionează starea aplicației ca o bază de date versionată, stocând datele ca fapte imutabile constând dintr-o entitate, atribut, valoare și tranzacție. Proiectul oferă un motor logic pentru executarea interogărilor Datalog cu suport pentru join-uri implicite, reguli recursive și negație. De asemenea, dispune de un API declarativ de tip „pull” pentru preluarea grafurilor de entități profund imbricate și a structurilor de date conexe. Baza de date impune integritatea datelor prin constrângeri bazate pe schemă și tipuri de atribute. Suportă tranzacții atomice, protocoale de stocare pluggable pentru persistență și indexarea atributelor B-tree pentru a optimiza căutările. Sistemul este conceput pentru utilizare în medii Clojure, ClojureScript și 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 este un compilator și un toolchain de limbaj cross-platform care transformă codul sursă Scala în JavaScript sau WebAssembly. Funcționează ca un instrument tipizat static pentru ecosistemul JavaScript, permițând dezvoltarea de aplicații pentru browsere web și medii Node.js. Proiectul servește ca framework de interop JavaScript, permițând crearea de fațade și binding-uri type-safe pentru a interacționa cu biblioteci externe și obiecte globale. Oferă mecanisme atât pentru invocarea JavaScript statică, cât și dinamică, inclusiv generarea de binding-uri TypeScript și capacitatea de a exporta logica internă pentru utilizare în cod JavaScript extern. Toolchain-ul include un instrument de build frontend pentru bundling-ul de producție și optimizarea output-ului, inclusiv eliminarea codului mort și împărțirea modulelor. Acoperă o suprafață largă de capabilități, inclusiv verificarea tipurilor elementelor DOM pentru dezvoltarea UI, partajarea codului cross-platform pentru dezvoltarea full-stack și diverse framework-uri de testare pentru verificarea artefactelor de build optimizate. Scripturile compilate pot fi executate direct într-un mediu de linie de comandă folosind un interpretor 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.