Frost Crystal is a barebones, modular API framework built with Crystal... and it's super cool.
Its structure has been built out to be naturally quite opinionated. That being said however, the project's logic is easy enough to follow and can easily be modified to suit your needs as much of the logic can be found and modified in the helper files.
The project utilizes Toro for modular routing and Granite for substrate-independent persistence.
Start by downloading this repository, note that you must have already have Crystal installed to use it.
Download dependencies with:
$ shards install
To get the project running at localhost:3000
run:
$ crystal src/frost-crystal.cr
And you can test the project with:
$ crystal spec
TODO: Write usage instructions here
[root]
|-[config] <- Configuration files for the application database
|
|-[spec]
| |-[api] <- Version-grouped test files suffixed with "_spec.cr"
|
|-[src]
| |-[api] <- Version-grouped API controller route files suffixed with "_api.cr"
| |
| |-[helpers] <- Helper files suffixed with "_helper.cr"
| |
| |-[models] <- Model files
|
|-(Dockerfile) <- A dockerfile that can generate a runnable container for prod
|
|-(shard.yml) <- The Crystal-lang dependency list
- Fork it from here
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- jonjondev Jonathan Moallem - creator, maintainer
This project is available as open source under the terms of the MIT License.