| Crates.io | reframe |
| lib.rs | reframe |
| version | 0.5.2 |
| created_at | 2019-02-21 12:44:18.639413+00 |
| updated_at | 2022-08-22 07:41:34.237841+00 |
| description | Light, Fast & Simple project scaffolder |
| homepage | https://github.com/Ansvia/reframe |
| repository | https://github.com/Ansvia/reframe |
| max_upload_size | |
| id | 116224 |
| size | 125,671 |
Because "don't repeat yourself"
If you need build project in matter of seconds, this tool for you.

For detail usage please check Reframe Documentation.
For Mac with homebrew:
brew tap ansvia/tools
brew install reframe
Or, if you have Cargo, type:
$ cargo install reframe
Download binary for your specific platform from release page.
$ reframe [SOURCE]
$ reframe anvie/basic-rust
anvie/basic-rust is refering to my github repo: basic-rust.rf.
To create Reframe source is super duper easy, all you needs is write Reframe.toml at the root project dir, example:
[project]
name = "Hello World"
version = "1.0"
[[param]]
with_serde = { ask = "Dengan serde?", default = false }
[[param]]
serde_version = { ask = "Versi serde?", default = "1.0", if="with_serde" }
[[param]]
# without default value means required
author_name = { ask = "Author name?" }
[[param]]
author_email = { ask = "Author email?" }
Every string type param will have case variants automagically, eg: author_name will have: author_name_lowercase, author_name_snake_case, author_name_kebab_case.
So when you need to get project name with snake case, write: $name_snake_case$.
When you done, you can test using reframe [YOUR-WORKING-TEMPLATE-DIR],
if all is ok, push the project to your github repo with additional postfix .rf at the project name, eg: if your repo name is unicorn then you must push with name unicorn.rf, and finally you can use anywhere by simply typing:
$ reframe [MY-GITHUB-USERNAME]/[MY-TEMPLATE]
Example:
$ reframe agus/unicorn
For detail usage please check Reframe Documentation.
Reframe source examples:
Supported case variants:
*_lower_case -> my cool app*_snake_case -> my_cool_app*_kebab_case -> my-cool-app*_shout_snake_case -> MY_COOL_APP*_upper_case -> MY COOL APP*_camel_case -> myCoolApp*_pascal_case -> MyCoolAppYou can also use builtin variables:
year -> Print current year, eg: 2019.
month_name -> Print current month, eg: July
Reframe also support templating engine for manipulating code use Handlebars syntax, example:
{{#if with_jwt}}
const jwt = require('jsonwebtoken');
{{/if}}
For more sources see SOURCES.
You can also list available sources by typing:
reframe --list