Package: wnpp Severity: wishlist -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
* Package name : ucode Version : v0.0.20220824 Upstream Author : Jo-Philipp Wich <j...@mein.io> * URL : https://github.com/jow-/ucode * License : ISC Programming Lang: C Description : tiny general purpose scripting language featuring a syntax closely resembling ECMAScript Long description ================ The ucode language is a tiny general purpose scripting language featuring a syntax closely resembling ECMAScript. It can be used in a stand-alone manner by using the ucode command line interpreter or embedded into host applications by linking libucode and utilizing its C language API. Additionally, ucode can be invoked in template mode where control flow and expression logic statements are embedded in Jinja-like markup blocks. Besides aiming for small size, the major design goals of ucode are the ability to trivially read and write JSON data, good embeddability into C applications, template capabilities for output formatting, extensiblity through loadable native extension modules and a straightforward set of built-in functions mimicking those found in the Perl 5 language. The following design goals were defined for the ucode scripting language: - - Ability to embed code logic fragments such as control flow statements, function calls or arithmetic expressions into plain text templates, using a block syntax and functionality roughly inspired by Jinja templates - - Built-in support for JSON data parsing and serialization, without the need for external libraries - - Distinct array and object types (compared to Lua's single table datatype) - - Distinct integer and float types and guaranteed 64bit integer range - - Built-in support for bit operations - - Built-in support for (POSIX) regular expressions - - A comprehensive set of built-in standard functions, inspired by the core functions found in the Perl 5 interpreter - - Staying as close to ECMAScript syntax as possible due to higher developer familiarity and to be able to reuse existing tooling such as editor syntax highlighting - - Bindings for all relevant Linux and OpenWrt APIs, such as ubus, uci, uloop, netlink etc. - - Procedural, synchronous programming flow - - Very small executable size (the interpreter and runtime is currently around 64KB on ARM Cortex A9) - - Embeddability into C host applications Summarized, ucode can be described as synchronous ECMAScript without the object oriented standard library. Additional information ====================== It's original purpose is/was for use in OpenWrt, but having a scripting language which only uses 64KB sounds useful for many more purposes. -----BEGIN PGP SIGNATURE----- iHUEARYIAB0WIQT1sUPBYsyGmi4usy/XblvOeH7bbgUCYzM/4QAKCRDXblvOeH7b bqiJAP4q1XZAWwQljnwGqRuhJIPzh3/gDNgS2g87mhLDfzMQ/gD7BKrvc9g13mtm tfzU+LjxE86oJ+egpk3ychsWfw+zdA4= =ZI53 -----END PGP SIGNATURE-----