https://github.com/onyx-lang/onyx
✨ The compiler and developer toolchain for Onyx
https://github.com/onyx-lang/onyx
programming-language wasm webassembly
Last synced: 5 months ago
JSON representation
✨ The compiler and developer toolchain for Onyx
- Host: GitHub
- URL: https://github.com/onyx-lang/onyx
- Owner: onyx-lang
- License: bsd-2-clause
- Created: 2022-04-04T15:10:25.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-01-18T23:41:15.000Z (about 1 year ago)
- Last Synced: 2025-01-19T00:24:21.741Z (about 1 year ago)
- Topics: programming-language, wasm, webassembly
- Language: C
- Homepage: https://onyxlang.io
- Size: 147 MB
- Stars: 587
- Watchers: 5
- Forks: 23
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome - onyx-lang/onyx - ✨ The compiler and developer toolchain for Onyx (<a name="C"></a>C)
README
An efficient, procedural, and pragmatic programming language
# The Onyx Programming Language
Onyx is a general purpose, efficient, procedural and pragmatic programming language for application development.
Onyx compiles solely to WebAssembly through a custom backend, leading to *blazingly-fast* build times.
```odin
use core {*}
Person :: struct { age: i32; name: str }
main :: () {
// Generate a list of 30 random people
people := Iterator.from(0 .. 30)
|> Iterator.map(_ => Person.{
random.between(1, 10)
random.string(10, alpha_numeric=true)
})
|> Iterator.collect()
// Sort them by age
Slice.sort(people, (a, b) => a.age - b.age)
// Group them by age
group_iter := Iterator.from(people)
|> Iterator.group_by((a, b) => a.age == b.age)
// Print the groups of people
for group in group_iter {
printf("People of age {}:\n", group.first.age)
for v in group.second {
printf(" {}\n", v.name)
}
}
}
```
# Resources
### [Onyx Installation](https://onyxlang.io/docs/install)
Install Onyx on your Linux, MacOS, or Windows system.
### [Onyx Documentation](https://onyxlang.io/docs)
Learn about the various aspects of Onyx, from the language semantics and syntax, to the core and third-party packages.
### [Onyx Book](https://docs.onyxlang.io/book/Overview.html)
The official source of language syntax and semantics documentation.
### [Onyx Playground](https://try.onyxlang.io)
Try Onyx online without installing anything
### [Onyx Discord](https://discord.com/invite/bhuN36dqj7)
Discuss with others about Onyx and get quick feedback and help on your Onyx projects.
# Disclaimer
> Onyx is still under active development, and some features are subject to change.
>
> Onyx is primarily developed for Linux and MacOS. Windows support exists, but the development experience on Windows is not as refined as the Linux and MacOS development experience.