Skip to content

Scanf-s/EZ

 
 

Repository files navigation

EZ Logo

Programming Made EZ

A simple, interpreted, statically-typed programming language designed for clarity and ease of use.

WebsiteDocumentation

CI CodeQL Security Scan


Developer Quick Start

Want to contribute or build from source?

macOS/Linux:

# Clone the repository
git clone https://github.com/SchoolyB/EZ.git
cd EZ

# Build the binary
make build

# Run a program
./ez examples/hello.ez

Windows (PowerShell):

# Clone the repository
git clone https://github.com/SchoolyB/EZ.git
cd EZ

# Build the binary
go build -o ez.exe ./cmd/ez

# Run a program
.\ez.exe examples\hello.ez

Requirements: Go 1.23.1 or higher

For pre-built binaries and installation instructions, visit the documentation.


Updating

EZ includes a built-in update command:

ez update

This will check for new versions, show the changelog, and prompt you to upgrade. If EZ is installed in a system directory (like /usr/local/bin), it will automatically prompt for your password.

Upgrading from v0.17.1 or earlier

If you're upgrading from v0.17.1 or earlier, you'll need to manually update once:

macOS/Linux:

# macOS (Apple Silicon)
curl -L https://github.com/SchoolyB/EZ/releases/latest/download/ez-darwin-arm64.tar.gz | tar xz
sudo mv ez /usr/local/bin/ez

# macOS (Intel)
curl -L https://github.com/SchoolyB/EZ/releases/latest/download/ez-darwin-amd64.tar.gz | tar xz
sudo mv ez /usr/local/bin/ez

# Linux (x86_64)
curl -L https://github.com/SchoolyB/EZ/releases/latest/download/ez-linux-amd64.tar.gz | tar xz
sudo mv ez /usr/local/bin/ez

# Linux (ARM64)
curl -L https://github.com/SchoolyB/EZ/releases/latest/download/ez-linux-arm64.tar.gz | tar xz
sudo mv ez /usr/local/bin/ez

Windows (PowerShell as Administrator):

# Download and extract
Invoke-WebRequest -Uri "https://github.com/SchoolyB/EZ/releases/latest/download/ez-windows-amd64.zip" -OutFile ez.zip
Expand-Archive ez.zip -DestinationPath .
Remove-Item ez.zip

# Create install directory and move binary
New-Item -ItemType Directory -Path "$env:ProgramFiles\ez" -Force
Move-Item ez.exe "$env:ProgramFiles\ez\ez.exe" -Force

# Add to PATH (if not already present)
$path = [Environment]::GetEnvironmentVariable("Path", "Machine")
if ($path -notlike "*$env:ProgramFiles\ez*") {
    [Environment]::SetEnvironmentVariable("Path", "$path;$env:ProgramFiles\ez", "Machine")
    Write-Host "Added to PATH - restart your terminal for changes to take effect"
}

Alternatively, if building from source, you can use the install script:

# Run as Administrator for system-wide install, or as regular user for user-local install
.\install.ps1

After this one-time manual update, ez update will work automatically for all future versions.


Running Tests

# Run integration tests
./integration-tests/run_tests.sh

# Run unit tests
go test ./...

For more details, see the Testing Guide.


License

MIT License - Copyright (c) 2025-Present Marshall A Burns

See LICENSE for details.


Contributors

Thank you to everyone who has contributed to EZ!

akamikado CobbCoding1 CFFinch62 Aryan-Shrivastva arjunpathak072 deepika1214 blackgirlbytes majiayu000 prjctimg jaideepkathiresan Abhishek022001 Scanf-s HCH1212 elect0 jgafnea

About

The EZ Programming Language: Programming Made EZ | Give us a ⭐

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 98.4%
  • Other 1.6%