An open API service indexing awesome lists of open source software.

https://github.com/uiua-lang/uiua

A tacit array programming language
https://github.com/uiua-lang/uiua

apl array-programming rust tacit uiua

Last synced: 13 days ago
JSON representation

A tacit array programming language

Awesome Lists containing this project

README

          

# Uiua

Uiua (pronounced *"wee-wuh"*) is a stack-based array programming language.

Documentation, examples, and an online interpreter can be found at [uiua.org](https://uiua.org).

You can also check out the [Discord server](https://discord.gg/3r9nrfYhCc).

You can support Uiua's development via [GitHub Sponsors](https://github.com/sponsors/uiua-lang).

## Installation

You can try the language without installing anything on [the website](https://uiua.org).

If you want to install the interpreter locally, there are 2 options:
- If your OS is supported, you can simply download the [latest release](https://github.com/uiua-lang/uiua/releases).
- If not, you will need to install via Cargo.
This requires [Rust](https://www.rust-lang.org/tools/install) (>=1.88) to be installed.

You can install with one of the following commands:
```
cargo install uiua -F full # Installs all features
cargo install uiua # No audio, webcam, or window features
```
On Linux, you may need to install some dependencies first:
```
apt install libx11-dev libffi-dev
```

The following optional features are available but not enabled by default (enabled by passing `--features `):
- `full`: Enables all optional features below
- `audio`: Enables audio system functions (may require `libasound2-dev libudev-dev pkg-config` on Linux)
- `webcam`: Enables webcam system functions (may require `libjpeg-dev` on Linux)
- `window`: Enables output in a window

- If you want the most recent development version of Uiua, you can install from the git repository.
```
cargo install --git https://github.com/uiua-lang/uiua uiua -F full
cargo install --git https://github.com/uiua-lang/uiua uiua
```
- If you use Nix or NixOS, you can clone this repo and do the following:
```
nix develop # to drop into a shell prompt with all the dependencies
cargo check # to make sure you can compile/build latest version
cargo build # to build latest debug version of uiua
cargo run repl # to get uiua repl
```

*Note:* If you encounter errors such as `rustc` or any other package
version mismatch, it is most likely that `flake.lock` file needs to be
updated to pull in updated dependencies for nix shell.

## Language and Font Support

The Uiua native interpreter has a built-in language server that can be used by editor extensions.

You can find a list of editor extensions [here](https://uiua.org/docs/install#editor-support).

You can find a list of fonts that support Uiua's characters [here](https://uiua.org/docs/install#fonts).