retoor 79ff93c9a2 feat: add pexpect and yaml modules with jinja from-import support
Add new pexpect module for process spawning and interaction, including Spawn class with expect, sendline, and timeout handling. Introduce yaml module for YAML parsing with support for nested structures, lists, and data types. Extend jinja template engine with brace tokenization and FromImportNode for macro imports across templates. Register all new foreign functions in modules.c and include generated demo scripts.
2026-01-25 21:09:29 +00:00

Wren-CLI

retoor retoor@molodetz.nl

A command-line interface and REPL for the Wren programming language. Built on libuv for asynchronous I/O with native support for HTTP/HTTPS, WebSockets, TLS, SQLite, JSON, regex, and more.

Prerequisites

  • C compiler (GCC or Clang)
  • Make
  • OpenSSL development libraries
  • Python 3 (for tests)

Build

git clone https://github.com/wren-lang/wren-cli.git
cd wren-cli
make build

Output binary: bin/wren_cli

Platform-Specific Builds

Platform Command
Linux make build
macOS cd projects/make.mac && make
FreeBSD cd projects/make.bsd && gmake

Test

make tests

Run a specific test suite:

python3 util/test.py json

Usage

bin/wren_cli script.wren    # Execute a script
bin/wren_cli                 # Start the REPL

Modules

Core: io, os, scheduler, timer, net, repl

Extended: json, env, math, base64, datetime, dns, signal, subprocess, crypto, regex, http, tls, sqlite, websocket, jinja, pathlib, tempfile, uuid

Documentation

See the manual/ directory for the full reference including API docs, tutorials, and how-to guides.

License

MIT

S
Description
Highly customized version of the wren programming language. It has all the modules that you would expect in a std library including http, websockets, sqlite3 and jinja-like templating engine. The idea is to make it suitable for web development.
Readme
22 MiB
Languages
HTML 50%
C 22.2%
PHP 13.4%
C++ 6%
Makefile 2.9%
Other 5.5%