13 个仓库
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 是一个绑定生成器和互操作层,旨在映射 WebAssembly 和 JavaScript 边界之间的数据类型和函数。它充当外部函数接口,合成必要的样板代码以实现 Rust 和浏览器运行时之间的双向通信。 该项目生成胶水代码和包装器,自动化复杂类型的转换,允许将 Rust 函数导出为 JavaScript 模块,并将浏览器 API 导入到 Rust 中。它使用过程宏来定义这些接口,并根据 Rust 类型定义合成绑定。 该系统通过线性内存指针传递来管理内存,并使用 JavaScript 管理的内存句柄处理资源交换。它依赖于与 C ABI 兼容的调用约定,在模块和宿主之间传递原始整数和浮点数。
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 是一个不可变的、内存中的状态存储和基于模式的三元组存储。它将应用状态作为版本化数据库进行管理,将数据存储为由实体、属性、值和事务组成的不可变事实。 该项目提供了一个用于执行 Datalog 查询的逻辑引擎,支持隐式连接、递归规则和否定。它还具有一个用于检索深度嵌套实体图和相关数据结构的声明式 pull API。 该数据库通过模式驱动的约束和属性类型强制执行数据完整性。它支持原子事务、用于持久化的可插拔存储协议,以及用于优化查找的 B 树属性索引。 该系统专为 Clojure、ClojureScript 和 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 是一个编译器和跨平台语言工具链,将 Scala 源代码转换为 JavaScript 或 WebAssembly。它作为 JavaScript 生态系统的一种静态类型工具,支持为 Web 浏览器和 Node.js 环境开发应用程序。 该项目作为一个 JavaScript 互操作框架,允许创建类型安全的门面(facades)和绑定,以与外部库和全局对象进行交互。它提供了静态和动态 JavaScript 调用机制,包括生成 TypeScript 绑定以及导出内部逻辑以供外部 JavaScript 代码使用的能力。 该工具链包含一个用于生产环境打包和输出优化的前端构建工具,包括死代码消除和模块拆分。它涵盖了广泛的功能面,包括用于 UI 开发的 DOM 元素类型检查、用于全栈开发的跨平台代码共享,以及用于验证优化构建产物的各种测试框架。 编译后的脚本可以使用 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.