{"id":51327577,"url":"https://github.com/encero-systems/incan","last_synced_at":"2026-07-01T20:00:27.510Z","repository":{"id":328400606,"uuid":"1114314236","full_name":"encero-systems/incan","owner":"encero-systems","description":"Incan: a modern, Pythonic language that compiles to Rust! Type-safe, async-friendly, with fixtures, testing, and web/inter-op built in.","archived":false,"fork":false,"pushed_at":"2026-06-28T15:30:43.000Z","size":115537,"stargazers_count":29,"open_issues_count":102,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-06-28T16:11:19.548Z","etag":null,"topics":["codegen","data-engineering","programming-language","python","rust","software-engineering","web"],"latest_commit_sha":null,"homepage":"https://encero-systems.github.io/incan","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/encero-systems.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-11T07:42:27.000Z","updated_at":"2026-06-19T19:31:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/encero-systems/incan","commit_stats":null,"previous_names":["dannys-code-corner/incan"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/encero-systems/incan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encero-systems%2Fincan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encero-systems%2Fincan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encero-systems%2Fincan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encero-systems%2Fincan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/encero-systems","download_url":"https://codeload.github.com/encero-systems/incan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encero-systems%2Fincan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35019348,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"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":["codegen","data-engineering","programming-language","python","rust","software-engineering","web"],"created_at":"2026-07-01T20:00:15.838Z","updated_at":"2026-07-01T20:00:27.498Z","avatar_url":"https://github.com/encero-systems.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Incan Programming Language\n\nIncan is a statically typed language for writing clear, high-level application code that compiles to native Rust. It aims to feel lightweight and expressive while keeping the things that matter in large codebases explicit: types, errors, and mutability.\n\n## Getting started\n\nInstall the latest SDK release, create a starter project, run it, test it, and produce a release build:\n\n```bash\ncurl -fsSL https://github.com/dannys-code-corner/incan/releases/latest/download/install.sh | sh\nexport PATH=\"$HOME/.local/bin:$PATH\"\nincan new hello --yes\ncd hello\nincan run\nincan test\nincan build --release\n```\n\nYou can also install through package-manager adapters that use the same release manifest and verified SDK archives:\n\n```bash\nbrew install https://github.com/dannys-code-corner/incan/releases/latest/download/incan.rb\nnpm install -g incan-sdk\npipx install incan-sdk\n```\n\nIf you are contributing to the compiler itself, clone this repository and use `make install` instead of the SDK installer.\n\n## Positioning\n\nPython won because it made application code readable and fast to write. Incan starts from that same readability premise, but changes the foundation: static types, explicit errors, explicit mutability, and Rust-native compilation.\n\nIncan is not a Python compatibility runtime or a faster Python interpreter. It is for new application code where teams want Python-like ergonomics without Python's runtime, packaging, and deployment tradeoffs.\n\nAs AI tools generate more code, those constraints matter more. Incan gives developers and agents a smaller, typed, auditable language surface that compiles into the Rust ecosystem.\n\n## Why Incan?\n\n- **Readable by default**: concise syntax for modeling data and writing “glue code” without ceremony.\n- **Explicit error handling**: `Result`, `Option`, and `?` keep failure paths visible and reviewable.\n- **Strong domain types**: `newtype` and `model` make invariants and intent first-class.\n- **Deterministic composition**: traits are for behavior contracts and predictable composition.\n- **Rust interop when you need it**: call into Rust crates for ecosystems and performance-sensitive utilities.\n- **Native performance**: the compiler emits Rust and builds a native binary.\n\n## Who is this for?\n\n- If you like the readability of Python but want stronger correctness tools and predictable performance, Incan is aimed at that workflow.\n- If you like Rust but want a smaller surface syntax for everyday application code, Incan is built to stay close to Rust semantics while reducing boilerplate.\n\n## Status\n\n\u003e **⚠️ Beta Software ⚠️**  \n\u003e Incan is in active development. The language, compiler, and APIs may still change, although we will try to keep it stable as much as possible.  \n\u003e Feedback and contributions are of course welcome!\n\nDocs policy: [Stability policy](workspaces/docs-site/docs/stability.md)\n\n## A small example\n\n```incan\nenum AppError:\n    InvalidInput(str)\n\ntype Email = newtype str:\n    def from_str(v: str) -\u003e Result[Email, AppError]:\n        if \"@\" not in v:\n            return Err(AppError.InvalidInput(\"missing @\"))\n        return Ok(Email(v.lower()))\n\n@derive(Debug, Eq, Clone)\nmodel User:\n    id: int\n    email: Email\n    is_active: bool = true\n\ntrait Loggable:\n    def log(self, msg: str) -\u003e None:\n        println(f\"[{self.name}] {msg}\")\n\nclass UserService with Loggable:\n    name: str\n    users: Dict[int, User]\n\n    def create(mut self, email_str: str) -\u003e Result[User, AppError]:\n        email = Email.from_str(email_str)?\n        user = User(id=len(self.users) + 1, email=email)\n        self.users[user.id] = user\n        self.log(f\"created user {user.id}\")\n        return Ok(user)\n```\n\n## Documentation\n\nThe docs site lives in `workspaces/docs-site/`.\n\nStart here:\n\n- Start here: `workspaces/docs-site/docs/start_here/index.md`\n- Language: `workspaces/docs-site/docs/language/index.md`\n- Tooling: `workspaces/docs-site/docs/tooling/index.md`\n\nBuild/serve locally:\n\n```bash\nmake docs-build\nmake docs-serve\n```\n\n## Performance\n\nIncan compiles to Rust and then to a native binary. Runtime performance can be close to Rust for many workloads, depending on current codegen and library behavior.\n\n- Benchmarks: `workspaces/benchmarks/`\n- Results: `workspaces/benchmarks/results/results.md`\n\n| Benchmark                 | Incan | Rust  | Python   | Incan vs Python   |\n|---------------------------|------:|------:|---------:|------------------:|\n| Fibonacci (1M iterations) | 15ms  | 17ms  | 490ms    | **32.6×** faster  |\n| Collatz (1M numbers)      | 152ms | 155ms | 9,043ms  | **59.4×** faster  |\n| GCD (10M pairs)           | 277ms | 298ms | 2,037ms  | **7.3×** faster   |\n| Mandelbrot (2K×2K)        | 250ms | 248ms | 12,268ms | **49.0×** faster  |\n| N-Body (500K steps)       | 39ms  | 39ms  | 4,934ms  | **126.5×** faster |\n| Prime Sieve (10M)         | 117ms | 120ms | 9,520ms  | **81.3×** faster  |\n| Quicksort (1M elements)   | 79ms  | 78ms  | 2,435ms  | **30.8×** faster  |\n| Mergesort (1M elements)   | 195ms | 196ms | 3,629ms  | **18.9×** faster  |\n\n**Benchmark details:**\n\n- **Machine:** Apple Silicon (results may vary)\n- **Incan/Rust:** Release builds with optimizations\n- **Python:** CPython 3.12\n- **Methodology:** [hyperfine](https://github.com/sharkdp/hyperfine) with warmup runs\n\n## Contributing\n\nContributions are welcome—docs, compiler, tooling, stdlib, and RFC work.\n\n- Contributor docs: `workspaces/docs-site/docs/contributing/index.md`\n- Repo guidelines: [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## License\n\nApache 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencero-systems%2Fincan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fencero-systems%2Fincan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencero-systems%2Fincan/lists"}