{"id":24234029,"url":"https://github.com/ignis-lang/ignis","last_synced_at":"2026-01-18T20:07:29.608Z","repository":{"id":215511832,"uuid":"739104518","full_name":"Ignis-lang/ignis","owner":"Ignis-lang","description":"Ignis is a programming language created by me. ","archived":false,"fork":false,"pushed_at":"2024-09-18T01:14:13.000Z","size":1140,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-09-19T04:42:49.580Z","etag":null,"topics":["compi","language","programming-language","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ignis-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2024-01-04T19:27:53.000Z","updated_at":"2024-05-14T11:29:50.000Z","dependencies_parsed_at":"2024-06-28T23:43:02.155Z","dependency_job_id":"6ad58ef4-67d3-4813-b09b-57b5e200fb64","html_url":"https://github.com/Ignis-lang/ignis","commit_stats":null,"previous_names":["ignis-lang/ignis"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ignis-lang%2Fignis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ignis-lang%2Fignis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ignis-lang%2Fignis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ignis-lang%2Fignis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ignis-lang","download_url":"https://codeload.github.com/Ignis-lang/ignis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233923786,"owners_count":18751707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["compi","language","programming-language","rust"],"created_at":"2025-01-14T17:00:13.277Z","updated_at":"2026-01-18T20:07:29.602Z","avatar_url":"https://github.com/Ignis-lang.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ignis Lang\n\n\u003e [!CAUTION]\n\u003e Ignis is under active development and evolving. It is currently in its early stages\n\u003e and is an experimental language. APIs and syntax may change between versions.\n\nIgnis is a general-purpose programming language with strong, static typing, and immutability by default.\nInspired by TypeScript and Rust, Ignis compiles to C and produces native executables via GCC.\n\n## Features (v0.2)\n\n- **Strong static typing**: `i8`-`i64`, `u8`-`u64`, `f32`, `f64`, `boolean`, `char`, `string`\n- **Immutability by default**: `let` for immutable, `let mut` for mutable\n- **Generics**: Type parameters for functions, records, enums, and type aliases\n- **Records and enums**: User-defined types with fields, methods, and variants\n- **Namespaces**: Module-level organization with `::` access\n- **References and pointers**: `\u0026T`, `\u0026mut T`, `*T`\n- **Control flow**: `if`/`else`, `while`, `for`, `for-of`, `break`, `continue`\n- **Function overloading**: Multiple functions with the same name, different signatures\n- **Modules**: `import`/`export` for multi-file projects\n- **FFI**: `extern` blocks for C interop\n- **Borrow checking**: Rust-style borrow analysis\n\nSee [docs/LANGUAGE_REFERENCE_v0.2.md](docs/LANGUAGE_REFERENCE_v0.2.md) for full language documentation.\n\n## Installation\n\n### Requirements\n\n- Rust/Cargo 1.74+\n- GCC (for compiling generated C code)\n\n```bash\n# From source\ngit clone https://github.com/ignis-lang/ignis.git\ncd ignis\ncargo install --path crates/ignis\n\n# Or build without installing\ncargo build --release\n```\n\n## Quick Start\n\nCreate a file `hello.ign`:\n\n```ignis\nimport Io from \"std::io\";\n\nfunction main(): void {\n    Io::println(\"Hello, Ignis!\");\n    return;\n}\n```\n\nBuild and run:\n\n```bash\n# Build the standard library (first time only)\nignis build-std\n\n# Compile and run\nignis build hello.ign\n./build/hello\n```\n\n## Usage\n\n```bash\n# Compile a single file\nignis build main.ign\n\n# Compile a project (uses ignis.toml)\nignis build\n\n# Build the standard library\nignis build-std\n\n# Additional options\nignis build main.ign --emit-c out.c          # Output generated C code\nignis build main.ign --dump hir              # Dump HIR for debugging\nignis build main.ign --dump hir --dump-hir main  # Dump HIR for a specific function\nignis build main.ign --debug --debug-trace analyzer\nignis build main.ign --debug                 # Enables -vv logs + debug traces\nignis build main.ign -O                      # Enable optimizations\n```\n\n## Example\n\n```ignis\nimport Io from \"std::io\";\nimport String from \"std::string\";\n\nrecord Box\u003cT\u003e {\n    value: T;\n}\n\nfunction identity\u003cT\u003e(x: T): T {\n    return x;\n}\n\nfunction main(): void {\n    let box: Box\u003ci32\u003e = Box { value: 42 };\n    let result: i32 = identity\u003ci32\u003e(box.value);\n    \n    Io::println(String::toString(result));\n    \n    return;\n}\n```\n\n## Project Structure\n\nFor multi-file projects, create an `ignis.toml`:\n\n```toml\nname = \"myproject\"\nversion = \"0.1.0\"\n\n[build]\nsource_dir = \"src\"\noutput_dir = \"build\"\n```\n\n## Contributions\n\nIgnis is open for contributions. You can:\n\n- Report bugs or issues\n- Propose new features\n- Submit pull requests with improvements\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignis-lang%2Fignis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fignis-lang%2Fignis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignis-lang%2Fignis/lists"}