2 releases
| 0.0.2 | Apr 16, 2025 |
|---|---|
| 0.0.0 | Feb 16, 2025 |
#1865 in Web programming
114 downloads per month
25KB
525 lines
awq
This is an example of a README.md file that clearly explains how to use the awq system for various programming
languages (Rust, JavaScript, C, CMake). It outlines the prerequisites such as the Makefile, scripts in
package.json, or custom commands for CMake, as well as the need to create an awq.yml file:
This project provides a unified abstraction for running build, test, lint, formatting, and audit commands across different programming languages using a common configuration system.
Concept
Each language is associated with a set of standardized commands grouped into a RUN_XXX table. These commands can then
be executed using the awq tool.
Minimum Configuration Requirements
Rust
No special configuration is required. The commands are directly compatible with cargo.
JavaScript / TypeScript
- Requires a
package.jsonfile. - The following scripts must be defined in
package.json:
"scripts": {
"build": "tsc",
"fmt": "prettier --check .",
"lint": "eslint .",
"audit": "npm audit",
"test": "npm test"
}
C
- Requires a
Makefilecontaining the following targets:
make # for building
make fmt # for formatting
make lint # for linting
make test # for testing
CMake
- Requires a custom configuration based on shell commands:
cmake -S . -B buildfor configurationcmake --build buildfor compilationctest --test-dir buildfor testingclang-formatandcppcheckfor formatting and linting
It is recommended to have a well-structured CMakeLists.txt file.
Configuration File awq.yml
You must create an awq.yml file at the root of your project with the following syntax:
language: [ "rust" ] # or "js", "c", "cmake"
This file specifies which set of commands awq should load.
Example Usage
awq
Supported Languages
- Rust
- JavaScript / TypeScript (via npm)
- C (via Makefile)
- CMake
Upcoming Features
- Support for Python, Go, and Bash
- Automatic generation of the
awq.ymlfile - Automatic language detection using heuristics
awq – Unify your workflows. Simplify your development process.
Dependencies
~14–32MB
~438K SLoC