wax
Wax is an opinionated Crystal code generator for web applications and APIs. It provides conventions to follow to write your backend Crystal code more quickly using a few different Crystal shards:
- Armature for HTTP routing
- Interro for querying your Postgres database
- Conveyor for background jobs
- Redis as the backing store for caching, background jobs, and sessions
- Dotenv for loading configuration from .env files
Installation
-
Add the dependency to your
shard.yml
:dependencies: wax: github: jgaskins/wax
-
Run
shards install
to installwax
and its dependencies
Usage
From your terminal:
bin/wax generate app YourAppName
Wax will generate all the files your app needs to get started for your app. You can also abbreviate generate
as g
:
bin/wax g app YourAppName
Generating
You can generate several kinds of files:
| Files | Command |
|-------|---------|
| App | bin/wax g app OnlineStore
|
| Models | bin/wax g model Product id:uuid:pkey title:string description:string
|
| Migration | bin/wax g migration add column products active:boolean
|
| Routes | bin/wax g route Catalog
|
| Components | bin/wax g component DatePicker
|
Development
TODO Write development instructions here
Contributing
- Fork it (https://github.com/jgaskins/wax/fork)
- 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
Contributors
- Jamie Gaskins - creator and maintainer