packages feed

harmony-0.1.0.0: README.md

# Harmony
Harmony is a web service specification compiler that generates implementation (server and client) and tests.

## Targets supported

+ Server
  * Node.js (`-sjs`)
+ Client (and [Hypothesis](https://github.com/DRMacIver/hypothesis) based tests)
  + Python (`-cpython`)

## Usage

After installing the package (`cabal install`), you will get the `harmony` executable. Afterwards:

    Usage: harmony [OPTION...] input_file
      -c[CLIENTS]     --client[=CLIENTS]         Desired output for the client
      -s[SERVERS]     --server[=SERVERS]         Desired output for the server
      -o[OUTPUT_DIR]  --output_dir[=OUTPUT_DIR]  Output path

Check the [Targets supported](#targets-supported) section to figure out the code related to each target.
## Syntax

The input file should follow the syntax specified in `language_spec/Language.cf`. Example:

    service_name: HouseworkService
    service_version: 1.0.0

    enum Color { RED, BLUE, BLACK }

    struct Task {
       // Primary key
       @PK
       name : String,
       color : Color
    }

    struct Person {
      name: String,
      age: Int,
      tasks: [Task]
    }

    resource Person ("/person")