![]() |
10 年之前 | |
---|---|---|
executables | 10 年之前 | |
src | 10 年之前 | |
support | 10 年之前 | |
tests | 10 年之前 | |
.gitignore | 10 年之前 | |
.travis.yml | 10 年之前 | |
LICENSE | 10 年之前 | |
Makefile | 10 年之前 | |
README.md | 10 年之前 | |
Setup.hs | 10 年之前 | |
gidl.cabal | 10 年之前 |
Gidl (for Galois Interface Description Language) is a simple IDL for describing structured types and RPC-style interfaces.
Gidl has a type language which permits the user to define types using the following primitives:
Gidl interfaces are composed of the following primitives:
Interfaces can be composed by subtyping - java style multiple inheritance. (We expect interface composition may change in the future.)
Protocol drift is detected by identifying each stream and attribute message on the wire by a hash of its name, its type, and all child types. Therefore
The gidl IDL uses a s-expression based format.
See example format: tests/example.idl
Gidl currently has backends for:
Use the create-sandbox
target in the Makefile to create a local cabal
sandbox and install all dependencies.
The default target builds the gidl library. You can then use cabal run gidl --
<OPTIONS>
to run the code generator. Use the --help
option to get usage
information.
Use the test
target in the Makefile to generate and test each backend
implementation.