Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/inko-lang/inko
A language for building concurrent software with confidence
https://github.com/inko-lang/inko
compiler inko llvm programming-language rust
Last synced: 30 days ago
JSON representation
A language for building concurrent software with confidence
- Host: GitHub
- URL: https://github.com/inko-lang/inko
- Owner: inko-lang
- License: mpl-2.0
- Created: 2015-04-07T11:47:03.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-05-01T14:34:34.000Z (7 months ago)
- Last Synced: 2024-05-02T01:14:49.903Z (6 months ago)
- Topics: compiler, inko, llvm, programming-language, rust
- Language: Rust
- Homepage: http://inko-lang.org/
- Size: 9.74 MB
- Stars: 746
- Watchers: 12
- Forks: 35
- Open Issues: 54
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Inko
Inko is a language for building concurrent software with confidence. Inko makes
it easy to build concurrent software, without having to worry about
unpredictable performance, unexpected runtime errors, or race conditions.Inko features deterministic automatic memory management, move semantics, static
typing, type-safe concurrency, efficient error handling, and more. Inko source
code is compiled to machine code using [LLVM](https://llvm.org/).For more information, refer to the [Inko website][website] or [the
documentation](https://docs.inko-lang.org). If you'd like to follow the
development of Inko, consider joining [our Discord
server](https://discord.gg/seeURxHxCb).## Examples
Hello world:
```inko
import std.stdio (Stdout)class async Main {
fn async main {
Stdout.new.print('Hello, world!')
}
}
```A simple concurrent program:
```inko
import std.sync (Future, Promise)class async Calculator {
fn async fact(size: Int, output: uni Promise[Int]) {
let result = 1.to(size).iter.reduce(1, fn (product, val) { product * val })output.set(result)
}
}class async Main {
fn async main {
let calc = Calculator()match Future.new {
case (future, promise) -> {
# This calculates the factorial of 15 in the background, then we wait
# for the result to be sent back to us.
calc.fact(15, promise)
future.get # => 1307674368000
}
}
}
}
```For more examples, refer to the [website][website].
## Installation
Details about how to install Inko and its requirements can be found in the
["Installing
Inko"](https://docs.inko-lang.org/manual/main/setup/installation/) guide in the
Inko manual.## License
All source code in this repository is licensed under the Mozilla Public License
version 2.0, unless stated otherwise. A copy of this license can be found in the
file "LICENSE".[website]: https://inko-lang.org/