d487109d7cafd61d2298c1e91e72366edc54ad10
Add three new native modules (fswatch, sysinfo, udp) to the Wren CLI build system and module registry. Extend the io module with async file copy and move operations using libuv uv_fs_copyfile and uv_fs_rename, plus expose stat mtime/atime/ctime fields and stdin windowSize. Update the io.wren wrapper with File.write, File.copy, File.move static methods and corresponding foreign declarations. Add shebang lines to generator2.wren, merge_all_wren.wren, merge_docs.wren, and phonebook.wren scripts.
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
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.
22 MiB
Languages
HTML
50%
C
22.2%
PHP
13.4%
C++
6%
Makefile
2.9%
Other
5.5%