{"id":34573236,"url":"https://github.com/schoolyb/ez","last_synced_at":"2026-05-10T06:10:35.197Z","repository":{"id":327344442,"uuid":"1101888987","full_name":"SchoolyB/EZ","owner":"SchoolyB","description":"The EZ Programming Language: Programming Made EZ | Give EZ a ⭐","archived":false,"fork":false,"pushed_at":"2026-04-26T16:35:12.000Z","size":17069,"stargazers_count":28,"open_issues_count":16,"forks_count":20,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-26T18:25:46.285Z","etag":null,"topics":["contributions-welcome","contributors-welcome","ez","ez-language","go","golang","good-first-issue","help-wanted","interpreter","open-source","programming-language"],"latest_commit_sha":null,"homepage":"https://schoolyb.github.io/EZ-Language-Webapp/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SchoolyB.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-22T12:33:16.000Z","updated_at":"2026-03-17T22:04:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SchoolyB/EZ","commit_stats":null,"previous_names":["schoolyb/ez"],"tags_count":180,"template":false,"template_full_name":null,"purl":"pkg:github/SchoolyB/EZ","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolyB%2FEZ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolyB%2FEZ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolyB%2FEZ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolyB%2FEZ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SchoolyB","download_url":"https://codeload.github.com/SchoolyB/EZ/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SchoolyB%2FEZ/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32525898,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["contributions-welcome","contributors-welcome","ez","ez-language","go","golang","good-first-issue","help-wanted","interpreter","open-source","programming-language"],"created_at":"2025-12-24T09:46:11.099Z","updated_at":"2026-05-02T07:06:28.534Z","avatar_url":"https://github.com/SchoolyB.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/EZ_LOGO.jpeg\" alt=\"EZ Logo\" width=\"400\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A statically typed, compiled programming language.\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eProgramming made EZ.\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://schoolyb.github.io/EZ-Language-Webapp/docs\"\u003eLearn More About EZ\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/SchoolyB/EZ/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/SchoolyB/EZ/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/SchoolyB/EZ/actions/workflows/codeql-analysis.yml\"\u003e\u003cimg src=\"https://github.com/SchoolyB/EZ/actions/workflows/codeql-analysis.yml/badge.svg\" alt=\"CodeQL Security Scan\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## What is EZ\n\nEZ is a statically typed, compiled programming language that produces native binaries. Source files (`.ez`) are compiled to C, then to machine code. The result is a single binary with no runtime dependencies.\n\n- Static type system with type inference\n- Structs with scoped functions\n- Multi-return values and error handling\n- String interpolation, enums, when/is expressions\n- 26 standard library modules (HTTP, JSON, crypto, SQLite, threads, and more)\n- Compiles in milliseconds\n\n\n```ez\nimport @json, @arrays\n\n#json\nconst Task struct {\n    title string\n    priority int\n    done bool\n}\n\ndo urgent(tasks [Task]) -\u003e (result [Task], count int) {\n    mut result [Task] = {}\n    mut count int = 0\n\n    for_each t in tasks {\n        when t.priority {\n            is 1, 2 {\n                if !t.done {\n                    arrays.append(result, t)\n                    count += 1\n                }\n            }\n        }\n    }\n\n    return result, count\n}\n\ndo main() {\n    mut tasks [Task] = {\n        Task{title: \"Fix login bug\", priority: 1, done: false},\n        Task{title: \"Write tests\", priority: 2, done: false},\n        Task{title: \"Update docs\", priority: 3, done: true},\n        Task{title: \"Deploy v3\", priority: 1, done: true},\n        Task{title: \"Review PRs\", priority: 2, done: false}\n    }\n\n    mut pending, total = urgent(tasks)\n\n    println(\"${total} urgent tasks:\")\n    for_each t in pending {\n        println(\"  [!] ${t.title}\")\n    }\n\n    println(\"\\nExported as JSON:\")\n    for_each t in pending {\n        println(json.stringify(t))\n    }\n}\n```\n\n---\n\n## Install\n\n### Binary download (recommended)\n\nDownload the latest release for your platform from the [Releases page](https://github.com/SchoolyB/EZ/releases). No dependencies required.\n\n### Build from source\n\nRequires Go 1.23+ and a C compiler (gcc or clang).\n\n```bash\ngit clone https://github.com/SchoolyB/EZ.git\ncd EZ\nmake build\nmake install\n```\n\n\u003e **Note:** EZ currently supports **macOS** and **Linux** only.\n\n---\n\n## Quick Start\n\nCreate a file called `main.ez`:\n\n```ez\ndo main() {\n    println(\"Hello, World!\")\n}\n```\n\nRun it:\n\n```bash\nez main.ez\n```\n\nEZ compiles your code to a native binary, executes it, and cleans up.\n\n---\n\n## Commands\n\n```\nez \u003cfile.ez\u003e              Compile and run\nez build \u003cfile.ez\u003e -o app Compile to a distributable binary\nez check \u003cfile.ez\u003e        Type check without compiling\nez repl                   Interactive REPL\nez watch \u003cfile.ez\u003e        Watch for changes, re-run on save\nez doc \u003cfile.ez\u003e           Generate docs from #doc attributes\nez pz \u003cname\u003e             Scaffold a new project\nez test                   Run the full test suite\nez report                 Print system info for bug reports\nez update                 Update to the latest stable version\nez update --pre           Update to the latest pre-release (alpha/beta/rc)\nez install \u003cversion\u003e      Install a specific version (e.g. 2.5.0, 3.0.0-beta.2)\nez version                Show version info\n```\n\n---\n\n## Updating\n\n```bash\nez update              # latest stable\nez update --pre        # latest pre-release\nez install 2.5.0       # pin to an exact version\n```\n\n`ez update` checks for new versions, shows the changelog, and upgrades both the `ez` CLI and the compiler. Pass `--pre` to pick up the latest alpha, beta, or rc. Use `ez install \u003cversion\u003e` to install an exact version by semver — downgrades and pre-release tags (e.g. `3.0.0-beta.2`) are supported.\n\n---\n\n## Bug Reports\n\nFound a bug? Run `ez report` to gather your system info, then open an issue at [github.com/SchoolyB/EZ/issues](https://github.com/SchoolyB/EZ/issues) and paste the output:\n\n```bash\nez report\n```\n\n```\nEZ Bug Report Info\n======================\nEZ Version:  v3.0.0-alpha.13  (pre-release)\nCommit:      (released build)\nInstall:     /usr/local/bin/ez\nOS:          darwin/arm64  Darwin 24.5.0\nCPU:         Apple M2\nRAM:         8 GB\nC compiler:  /usr/bin/clang\n             Apple clang version 17.0.0 (clang-1700.0.13.5)\n             target: arm64-apple-darwin24.5.0\n```\n\nInclude this output along with a description of the bug, the EZ code that triggers it, and what you expected to happen.\n\n---\n\n## Learn More\n\n- [Official documentation](https://schoolyb.github.io/EZ-Language-Webapp/docs)\n- [Contributing guide](CONTRIBUTING.md)\n\n---\n\n## License\n\nMIT License - Copyright (c) 2025-Present Marshall A Burns\n\nSee [LICENSE](LICENSE) for details.\n\n---\n\n## Contributors\n\nThank you to everyone who has contributed to EZ!\n\n\u003ca href=\"https://github.com/akamikado\"\u003e\u003cimg src=\"https://github.com/akamikado.png\" width=\"50\" height=\"50\" alt=\"akamikado\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/CobbCoding1\"\u003e\u003cimg src=\"https://github.com/CobbCoding1.png\" width=\"50\" height=\"50\" alt=\"CobbCoding1\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/CFFinch62\"\u003e\u003cimg src=\"https://github.com/CFFinch62.png\" width=\"50\" height=\"50\" alt=\"CFFinch62\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Aryan-Shrivastva\"\u003e\u003cimg src=\"https://github.com/Aryan-Shrivastva.png\" width=\"50\" height=\"50\" alt=\"Aryan-Shrivastva\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/arjunpathak072\"\u003e\u003cimg src=\"https://github.com/arjunpathak072.png\" width=\"50\" height=\"50\" alt=\"arjunpathak072\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/deepika1214\"\u003e\u003cimg src=\"https://github.com/deepika1214.png\" width=\"50\" height=\"50\" alt=\"deepika1214\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/blackgirlbytes\"\u003e\u003cimg src=\"https://github.com/blackgirlbytes.png\" width=\"50\" height=\"50\" alt=\"blackgirlbytes\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/majiayu000\"\u003e\u003cimg src=\"https://github.com/majiayu000.png\" width=\"50\" height=\"50\" alt=\"majiayu000\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/prjctimg\"\u003e\u003cimg src=\"https://github.com/prjctimg.png\" width=\"50\" height=\"50\" alt=\"prjctimg\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jaideepkathiresan\"\u003e\u003cimg src=\"https://github.com/jaideepkathiresan.png\" width=\"50\" height=\"50\" alt=\"jaideepkathiresan\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Abhishek022001\"\u003e\u003cimg src=\"https://github.com/Abhishek022001.png\" width=\"50\" height=\"50\" alt=\"Abhishek022001\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Scanf-s\"\u003e\u003cimg src=\"https://github.com/Scanf-s.png\" width=\"50\" height=\"50\" alt=\"Scanf-s\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/HCH1212\"\u003e\u003cimg src=\"https://github.com/HCH1212.png\" width=\"50\" height=\"50\" alt=\"HCH1212\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/elect0\"\u003e\u003cimg src=\"https://github.com/elect0.png\" width=\"50\" height=\"50\" alt=\"elect0\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jgafnea\"\u003e\u003cimg src=\"https://github.com/jgafnea.png\" width=\"50\" height=\"50\" alt=\"jgafnea\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/madhav-murali\"\u003e\u003cimg src=\"https://github.com/madhav-murali.png\" width=\"50\" height=\"50\" alt=\"madhav-murali\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/preettrank53\"\u003e\u003cimg src=\"https://github.com/preettrank53.png\" width=\"50\" height=\"50\" alt=\"preettrank53\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/TechLateef\"\u003e\u003cimg src=\"https://github.com/TechLateef.png\" width=\"50\" height=\"50\" alt=\"TechLateef\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/dtee1\"\u003e\u003cimg src=\"https://github.com/dtee1.png\" width=\"50\" height=\"50\" alt=\"dtee1\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/SAY-5\"\u003e\u003cimg src=\"https://github.com/SAY-5.png\" width=\"50\" height=\"50\" alt=\"SAY-5\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003cimg src=\"https://github.com/mvanhorn.png\" width=\"50\" height=\"50\" alt=\"mvanhorn\"/\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschoolyb%2Fez","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschoolyb%2Fez","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschoolyb%2Fez/lists"}