cosmo
Version, currently 0.10.044 versions
- 0.10.0latestJun 13, 2023
- 0.9.9not indexedApr 26, 2024
- 0.9.8not indexedApr 26, 2024
- 0.9.7not indexedApr 26, 2024
- 0.9.7-1not indexedApr 26, 2024
- 0.9.6not indexedApr 26, 2024
- 0.9.6-1not indexedApr 26, 2024
- 0.9.5not indexedApr 26, 2024
- 0.9.4not indexedApr 26, 2024
- 0.9.3not indexedApr 26, 2024
- 0.9.2not indexedApr 26, 2024
- 0.9.1not indexedApr 26, 2024
- 0.9.0not indexedApr 26, 2024
- 0.8.2not indexedApr 26, 2024
- 0.8.1not indexedApr 26, 2024
- 0.8.0not indexedApr 26, 2024
- 0.7.11not indexedApr 26, 2024
- 0.7.10not indexedApr 26, 2024
- 0.7.9not indexedApr 26, 2024
- 0.7.8not indexedApr 26, 2024
- 0.7.7not indexedApr 26, 2024
- 0.7.6not indexedApr 26, 2024
- 0.7.5not indexedApr 26, 2024
- 0.7.4not indexedApr 26, 2024
- 0.7.3not indexedApr 26, 2024
- 0.7.2not indexedApr 26, 2024
- 0.7.1not indexedApr 26, 2024
- 0.7.0not indexedApr 26, 2024
- 0.6.6not indexedApr 26, 2024
- 0.6.5not indexedApr 26, 2024
- 0.6.4not indexedApr 26, 2024
- 0.6.3not indexedApr 26, 2024
- 0.6.2not indexedApr 26, 2024
- 0.6.1not indexedApr 26, 2024
- 0.6.0not indexedApr 26, 2024
- 0.5.4not indexedApr 26, 2024
- 0.5.3not indexedApr 26, 2024
- 0.5.2not indexedApr 26, 2024
- 0.5.0not indexedApr 26, 2024
- 0.4.2not indexedApr 26, 2024
- 0.3.1not indexedApr 26, 2024
- 0.3.0not indexedApr 26, 2024
- 0.2.0not indexedApr 26, 2024
- 0.1.0not indexedApr 26, 2024
github.com/cosmo-lang/cosmo
A simple statically-typed language written in pure Crystal.
15 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
cosmo:
github: cosmo-lang/cosmo
version: ~> 0.10.0Then run:
shards installshard.yml
- Crystal
>= 1.8.2- License
- MIT
- Authors
- R-unic <roleyspersonal@gmail.com>, quasar098, Kevin Alavik <kevin.alavik@icloud.com>
- Target
cosmofrom src/cosmo.cr
Dependencies
Runtime Dependencies
- stdio*github: mosop/stdio
README

# Cosmo
Cosmo is a statically-typed interpreted programming language written in pure Crystal.<br>
We have an [extension for VS code](https://marketplace.visualstudio.com/items?itemName=cosmo.vscode-cosmo) ([source](https://github.com/R-unic/vscode-cosmo)), however it currently only features syntax highlighting and code snippets.
## Installation
Download the [Cosmo Installer](https://github.com/cosmo-lang/cosmo-installer/releases) and run it.
## Contributing
There is a guide about how to contribute [here](https://github.com/cosmo-lang/cosmo/wiki) on our Wiki.
1. [Fork it](https://github.com/R-unic/cosmo/fork)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Test your code (`make test`)
5. Push to the branch (`make publish`)
6. Create a new [Pull Request](https://github.com/cosmo-lang/cosmo/pulls)
Have any questions or comments? DM me on Discord: `runic#5997`
## Contributors
- [R-unic](https://github.com/R-unic) - creator and maintainer
- [quasar098](https://github.com/quasar098)
- [Kevin Alavik](https://github.com/kevinalavik)
## Things I Might Do
- Named arguments
- Make a Cosmo->C compiler
- C bindings
## Things I Gotta Do
### Features
- Grammar
- Regexes
- Endless (and beginless?) range literals
- Postfix `every` loop (e.x. `x < 1 for every int x in vec`)?
- `typeof`
- Multiple assignment/declaration with spreads (e.x. `int x, y = *[1, 2]`)
- `:=` operator (this will include making `=` binary expressions a statement [this is gonna be weird to implement lmao])
- Enums
- Decorators
- Interfaces
- Namespaces
- Classes
* single inheritance
* mixins
* static/protected members
- Rewrite type system
* bound expressions (!!)
* an actual type pass
* generics
* type inference
* casting union types
* implicit conversions
* intersection types
- Other
- Extend `HTTP` library
* routing stuff
- `+` operator for vectors, same functionality as `Vector->combine`
- `string` and `char` to hex conversions (e.x. `<uint>'f' == 15`)
- Some form of multithreading
- Intrinsic methods for all datatypes (inherit from a base type)
- REPL supports multiline source
- Colorize REPL input
### Fixes
- Performance boosts lol
- Access imported aliased types
- Access types within tables (e.x.`JSON::Any`)
- More detailed errors when unable to resolve a type
- Import stack traces
- Properly log errors from intrinsics
- Segfaults
* passing `$`? (pretty sure this is just like everything to do with classes)
* `<float[]>[1,2,3]`
- Class instance variables available outside of `$`
- Throw if same module was imported twice
- `["a.b.c"].first.split('.')` tries to access `["a.b.c"].first` instead of `["a.b.c"].first()` because of the `split` call with parentheses (bug)
### Tests
- Chained method calls with optional parentheses (e.x. `["a.b.c"].first.split('.').first == "a"`)
- Expectation of errors in parser spec (e.x. `()` throws `Invalid syntax ')': Expected an expression`)
- New intrinsic libraries
### Refactorings
(empty)
### Meta
- Package manager ([Stars](https://github.com/cosmo-lang/stars) + [StarsAPI](https://github.com/cosmo-lang/stars-api)) (WIP)
- Documentation generator?
- Language server
- Highlight function definition names without parentheses
### Docs
(empty)Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.10.0- Tagged
- Jun 13, 2023
- Commit
88edfaa4fa3d- Crystal
>= 1.8.2- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/cosmo-lang/cosmo
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 13, 2026
- Synced
- Aug 13, 2026
- Versions
- 44