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

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetServeur MCPÀ proposNotre méthodologiePresse
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
wren-lang avatar

wren-lang/wren

0
View on GitHub↗
8,043 stars·619 forks·Wren·MIT·8 vueswren.io↗

Wren

Wren is an embeddable, class-based scripting language and bytecode interpreter. It provides a dependency-free virtual machine designed for integrating dynamic script execution into host applications via a C API.

The language is centered on a modern object-oriented model featuring inheritance, method overloading, and first-class functions. It utilizes a concurrent fiber runtime to manage lightweight, cooperatively scheduled execution paths without relying on operating system threads.

The project includes a comprehensive suite of object-oriented primitives, closure-based state capture, and a module import system with cyclic dependency resolution. Its performance is supported by single-pass bytecode compilation, fixed-offset field access, and tagged value storage to reduce memory overhead.

The virtual machine can be integrated into applications as a static or shared library, and the language can also be executed as a standalone binary tool via a command-line interface.

Features

  • Class-Based Scripting Languages - Implements a small and fast object-oriented scripting language designed for embedding and concurrent task execution.
  • Fiber-Based Concurrent Execution - Implements a concurrent runtime based on lightweight fibers and cooperative scheduling to handle asynchronous workflows.
  • Embeddable Scripting Engines - Ships a dependency-free virtual machine with a C API for integrating dynamic script execution into host applications.
  • Virtual Machines - Provides a virtual machine that can be integrated into applications via static libraries or direct source inclusion.
  • Single-Pass Compilation - Emits bytecode during a single parsing pass to minimize memory allocation and accelerate application startup.
  • Bytecode Interpreters - Implements a bytecode interpreter that runs compiled source code to produce output and verify logic.
  • Bytecode Virtual Machines - Implements a custom virtual machine that executes a specialized instruction set for the language runtime.
  • C-Based Embedding APIs - Provides a minimal C-based API for embedding the scripting engine and defining host functions within native applications.
  • Class System Implementations - Organizes execution around a core class system implementation with a modern object-oriented model.
  • Bytecode Interpreters - Provides an execution engine that compiles source code into bytecode in a single pass for fast startup.
  • Computed Goto Dispatch - Uses computed gotos in the bytecode loop to create distinct branch points and reduce CPU pipeline stalls.
  • Embedded Script Execution - Enables the execution of a scripting language runtime within a larger compiled host application.
  • Fixed-Offset Field Access - Accesses object fields using fixed memory offsets to avoid expensive runtime hash table lookups.
  • Language Embedding - Provides a dependency-free scripting layer that can be embedded into existing software to allow user extensions.
  • Fiber-Based Schedulers - Features a cooperative scheduler that manages lightweight fibers for concurrent operation without using OS threads.
  • Method Dispatch Optimizations - Copies inherited methods into subclasses during definition to eliminate walking the inheritance chain at runtime.
  • Object-Oriented Scripting - Uses a modern class-based model with inheritance and method overloading for organized state and behavior.
  • Primitive Types - Implements a set of basic built-in data types including booleans, floating-point numbers, and UTF-8 strings.
  • Tagged Value Storage - Stores numbers and booleans as unboxed values using tagging to reduce memory overhead and cache misses.
  • Object-Oriented Programming - Employs a class-based model supporting inheritance, method overloading, and first-class functions.
  • Field Offset Accessors - Implements fixed-offset field access to eliminate expensive hash table lookups for object properties.
  • Command Line Interfaces - Ships as a standalone binary tool that allows scripts to be executed from a command-line interface.
  • VM Runtime Environments - Manages the initialization and destruction of virtual machine instances to control memory and execution state.
  • Runtime Instance Isolation - Creates independent runtime instances with custom configurations and output handlers for isolated script execution.
  • Arity-Based Method Overloading - Supports defining multiple methods with the same name that perform different tasks based on the number of arguments.
  • Class Definitions - Provides syntax and structure to define custom classes with methods, fields, and inheritance.
  • Class Inheritance - Supports deriving new classes from existing ones to inherit methods and utilize super-calls.
  • Arity-Based Method Definitions - Defines named behaviors with support for arity-based overloading and specialized getters and setters.
  • CLI Script Execution - Provides a standalone binary tool to execute scripts directly from the command-line interface.
  • Collection Accessors - Enables retrieving or assigning values in collection objects using bracket syntax mapped to method signatures.
  • Compile-Time Arity Validation - Checks argument counts against method signatures at compile time to remove the need for runtime validation.
  • Computed Goto Dispatchers - Uses computed gotos in the bytecode loop to reduce CPU pipeline stalls and improve execution speed.
  • Direct Execution Transfers - Implements a peer-to-peer transfer of control between fibers to switch execution paths without a return stack.
  • Dynamic Method Invocation - Allows calling functions on objects by evaluating a receiver and passing arguments to a method identified by name.
  • Fiber State Suspension - Allows pausing a fiber's execution at any point and resuming it from the exact same location.
  • First-Class Functions - Treats functions as first-class objects that can be stored in variables and passed as arguments.
  • Flattened Method Dispatchers - Optimizes method resolution by flattening the inheritance hierarchy during class definition.
  • Function Objects - Allows classes to respond to call requests, enabling objects to be used interchangeably with functions.
  • Block-Scoped Variable Declarations - Implements block-level scoping and explicit declarations to track data through a script.
  • Closure Captures - Maintains access to variables defined outside a local scope through closures to preserve state.
  • Module Import Systems - Implements a system for loading and executing external source code to share variables across different parts of a program.
  • Module Singleton State Management - Ensures a module is executed only once and reused across multiple imports to maintain a single copy of its state.
  • Named Constructors - Provides named constructors to initialize object state during class instantiation.
  • Property Access Syntax - Supports reading and writing object properties using assignment syntax or method signatures that omit parentheses.
  • Operator Method Mappings - Implements prefix, infix, and range operators that map directly to method calls on operands.
  • Ordered Collections - Provides built-in ordered collections that store mixed-type elements accessible by integer index.
  • Runtime Library Integrations - Integrates a class-based concurrent language into host applications as either a static or shared library.
  • Runtime Bytecode Compilation - Compiles source code strings into bytecode at runtime for execution within the fiber model.
  • Tagged Value Boxing - Reduces memory overhead and cache misses by storing booleans and numbers as tagged, unboxed values.
  • Static and Instance Field Management - Stores data within objects using implicitly declared fields and static fields for class-level shared state.
  • Fiber Data Exchange - Enables passing values to fibers during invocation and receiving values back upon yielding.
  • Circular Dependency Resolution - Supports mutual imports between modules by registering them before execution to prevent infinite loading loops.
  • Host-Defined Module Resolvers - Resolves module names into source code via a host-side function using the file system or bundled resources.

Historique des stars

Graphique de l'historique des stars pour wren-lang/wrenGraphique de l'historique des stars pour wren-lang/wren

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Wren

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Wren.
  • munificent/wrenAvatar de munificent

    munificent/wren

    8,039Voir sur GitHub↗

    Wren is a bytecode-compiled, class-based scripting language designed as an embeddable programming language. It provides a lightweight runtime and interface for executing dynamic scripts directly within host software applications. The engine utilizes a single-pass compiler to transform source code into compact bytecode and a virtual machine to process those instructions. It supports concurrent task execution through a system of lightweight fibers and coroutines. The language implements a class-based object model with dynamic message dispatch for organizing code into reusable components. It al

    Wren
    Voir sur GitHub↗8,039
  • mruby/mrubyAvatar de mruby

    mruby/mruby

    5,584Voir sur GitHub↗

    mruby is a lightweight Ruby interpreter designed to be embedded into C applications. It compiles Ruby source code into a compact, platform-independent bytecode that executes on a register-based virtual machine, and exposes a stable C API for host programs to initialize the interpreter, load bytecode, and invoke Ruby methods at runtime. The interpreter distinguishes itself through a tightly coupled parser and compiler that performs lexical analysis, syntax parsing, and bytecode generation in a single pass without constructing an intermediate AST, minimizing memory overhead. It also includes a

    C
    Voir sur GitHub↗5,584
  • luau-lang/luauAvatar de luau-lang

    luau-lang/luau

    5,635Voir sur GitHub↗

    Luau is a high-performance programming language evolved from Lua 5.1. It consists of a bytecode virtual machine, an embeddable scripting engine, and a static code analyzer designed to provide a secure, sandboxed execution environment for host applications. The project is distinguished by its gradual typing system, which combines automatic type inference with optional manual annotations to detect bugs without requiring full static typing. It also features native vector mathematics for high-performance operations and a specialized debugging system that uses bytecode patching to minimize executi

    C++luaprogramming-languagescripting-language
    Voir sur GitHub↗5,635
  • yuin/gopher-luaAvatar de yuin

    yuin/gopher-lua

    6,933Voir sur GitHub↗

    Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It serves as an embedded scripting engine and virtual machine that allows Go applications to execute Lua scripts and exchange data between the host and the script environment. The project provides a bytecode compiler to transform source code into a binary format for faster execution. It enables deep integration between the two languages by allowing the registration of native Go functions to be called from scripts, and the invocation of script functions directly from Go. The engine c

    Gogogopher-lualua
    Voir sur GitHub↗6,933
Voir les 30 alternatives à Wren→

Questions fréquentes

Que fait wren-lang/wren ?

Wren is an embeddable, class-based scripting language and bytecode interpreter. It provides a dependency-free virtual machine designed for integrating dynamic script execution into host applications via a C API.

Quelles sont les fonctionnalités principales de wren-lang/wren ?

Les fonctionnalités principales de wren-lang/wren sont : Class-Based Scripting Languages, Fiber-Based Concurrent Execution, Embeddable Scripting Engines, Virtual Machines, Single-Pass Compilation, Bytecode Interpreters, Bytecode Virtual Machines, C-Based Embedding APIs.

Quelles sont les alternatives open-source à wren-lang/wren ?

Les alternatives open-source à wren-lang/wren incluent : munificent/wren — Wren is a bytecode-compiled, class-based scripting language designed as an embeddable programming language. It… mruby/mruby — mruby is a lightweight Ruby interpreter designed to be embedded into C applications. It compiles Ruby source code into… luau-lang/luau — Luau is a high-performance programming language evolved from Lua 5.1. It consists of a bytecode virtual machine, an… yuin/gopher-lua — Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It… marijnh/eloquent-javascript — Eloquent-JavaScript is a comprehensive JavaScript programming textbook and interactive coding tutorial designed for… puniverse/quasar — Quasar is a JVM concurrency framework that implements the actor model and a lightweight thread library. It provides…