{"id":13610315,"url":"https://gitlab.com/inko-lang/inko","last_synced_at":"2025-04-12T22:33:23.376Z","repository":{"id":50200609,"uuid":"4545016","full_name":"inko-lang/inko","owner":"inko-lang","description":"Moved to https://github.com/inko-lang/inko","archived":true,"fork":false,"pushed_at":null,"size":null,"stargazers_count":158,"open_issues_count":47,"forks_count":16,"subscribers_count":null,"default_branch":"master","last_synced_at":"2024-11-07T16:43:03.404Z","etag":null,"topics":["interpreted","interpreter","programming language","rust","virtual machine"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://gitlab.com/uploads/-/system/project/avatar/4545016/inko_logo_headshot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".gitlab/CODEOWNERS","security":null,"support":null},"funding":{"github":"yorickpeterse"}},"created_at":"2017-11-02T00:11:14.834Z","updated_at":"2023-03-14T20:25:19.452Z","dependencies_parsed_at":"2022-08-19T23:00:15.896Z","dependency_job_id":null,"html_url":"https://gitlab.com/inko-lang/inko","commit_stats":null,"previous_names":[],"tags_count":16,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/inko-lang%2Finko","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/inko-lang%2Finko/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/inko-lang%2Finko/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/inko-lang%2Finko/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/inko-lang","download_url":"https://gitlab.com/inko-lang/inko/-/archive/master/inko-master.zip","host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4518646,"owners_count":6930,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2024-07-18T11:24:13.055Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"}},"keywords":["interpreted","interpreter","programming language","rust","virtual machine"],"created_at":"2024-08-01T19:01:43.512Z","updated_at":"2025-04-12T22:33:22.307Z","avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/4545016/inko_logo_headshot.png","language":null,"funding_links":["https://github.com/sponsors/yorickpeterse"],"categories":["Uncategorized","Other"],"sub_categories":["Uncategorized"],"readme":"# Inko\n\nInko is a language for building concurrent software with confidence. Inko makes\nit easy to build concurrent software, without having to worry about\nunpredictable performance, unexpected runtime errors, race conditions, and type\nerrors.\n\nInko features deterministic automatic memory management, move semantics, static\ntyping, type-safe concurrency, efficient error handling, and more.\n\nInko supports 64-bits Linux, macOS and Windows, and installing Inko is quick and\neasy.\n\nFor more information, see the [Inko website](https://inko-lang.org/). If you'd\nlike to follow this project but don't have a GitLab account, please consider\nstarring our [GitHub mirror](https://github.com/YorickPeterse/inko).\n\n## Features\n\n- Deterministic automatic memory management based on single ownership\n- Easy concurrency through lightweight isolated processes\n- Static typing\n- Error handling done right\n- An efficient, compact and portable bytecode interpreter\n- Pattern matching\n- Algebraic data types\n\n## Examples\n\nHere's what \"Hello, World!\" looks like in Inko:\n\n```inko\nimport std::stdio::STDOUT\n\nclass async Main {\n  fn async main {\n    STDOUT.new.print('Hello, World!')\n  }\n}\n```\n\nAnd here's how you'd define a concurrent counter:\n\n```inko\nclass async Counter {\n  let @value: Int\n\n  fn async mut increment {\n    @value += 1\n  }\n\n  fn async value -\u003e Int {\n    @value.clone\n  }\n}\n\nclass async Main {\n  fn async main {\n    let counter = Counter { @value = 0 }\n\n    # \"Main\" will wait for the results of these calls, without blocking any OS\n    # threads.\n    counter.increment\n    counter.increment\n    counter.value # =\u003e 2\n  }\n}\n```\n\nInko uses single ownership like Rust, but unlike Rust our implementation is\neasier and less frustrating to use. For example, defining self-referential data\ntypes such as doubly linked lists is trivial, and doesn't require unsafe code or\nraw pointers:\n\n```inko\nclass Node[T] {\n  let @next: Option[Node[T]]\n  let @previous: Option[mut Node[T]]\n  let @value: T\n}\n\nclass List[T] {\n  let @head: Option[Node[T]]\n  let @tail: Option[mut Node[T]]\n}\n```\n\n## Installing\n\nDetails about how to install Inko and its requirements can be found in the\n[\"Installing\nInko\"](https://docs.inko-lang.org/manual/master/getting-started/installation/)\nguide in the Inko manual.\n\n## License\n\nAll source code in this repository is licensed under the Mozilla Public License\nversion 2.0, unless stated otherwise. A copy of this license can be found in the\nfile \"LICENSE\".\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Finko-lang%2Finko","html_url":"https://awesome.ecosyste.ms/projects/gitlab.com%2Finko-lang%2Finko","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Finko-lang%2Finko/lists"}