Anis is a modern, lightweight, and cross-platform programming language built in C++. It features a JavaScript-like syntax, a built-in GUI library with JSX-style layout, and an interactive REPL.
- Standard Syntax: JavaScript-like syntax with support for arrow functions, object spread, and destructuring.
- Built-in GUI: Create desktop applications using JSX-like components (
<Row>,<Column>,<Button>, etc.). - HTTP Module: Full support for
GETandPOSTrequests vialibcurl. - Remote Imports: Import scripts directly from URLs (
http://orhttps://). - REPL: Interactive shell for quick prototyping and testing.
- Cross-Platform: Support for macOS, Linux, and Windows.
- Single Binary: Compiles to a self-contained executable with no heavy runtime dependencies.
| OS | Requirements |
|---|---|
| macOS | Clang++, GLFW, Freetype, SQLite3, MySQL, Libcurl (via Homebrew) |
| Linux | Clang++, pkg-config, libglfw3-dev, libfreetype6-dev, libsqlite3-dev, libmysqlclient-dev, libcurl4-openssl-dev |
| Windows | Clang++ (MinGW-w64), GLFW3, Freetype, SQLite3, MySQL, Libcurl |
brew install glfw freetype sqlite mysql-clientsudo apt-get install clang libglfw3-dev libfreetype6-dev libsqlite3-dev libmysqlclient-dev libcurl4-openssl-dev pkg-config-
Clone the repository:
git clone https://github.com/yudono/anis.git cd anis -
Build the project:
make
-
The binary will be available at
bin/anis.
./bin/anis examples/test_syntax/test_hello_world.anisSimply run the binary without arguments:
./bin/anis./bin/anis --helpFor detailed documentation, explore the files in the DOCS/ directory:
- Getting Started: Installation and first steps.
- Language Syntax: Syntax, variables, and control flow.
- GUI Components: Building UIs with JSX-style components.
- Standard Library: Reference for built-in modules.
- Native Library Guide: Guide for extending Anis with C++.
- Build Output: Object files are stored in
build/[os_name]/. - Clean Build:
make clean - Dependencies Check:
make check_deps
This project is licensed under the MIT License - see the LICENSE file for details.


