Crates in the flow project
The flow project is split into a number of different crates for a number of reasons:
- proc macros need to be in their own crate
- sharing of structures and code across compiler and runner crates
- desire to separate core functionality in libraries from CLI binaries and enable UI applications using only the libraries
- provide CLI versions of compiler and runner
- avoid cyclic dependencies between parts
- allow to compile optionally without some features, not using code in a crate
- separate library implementation from compiler and runner
The following sections provide a brief description of the crates in the project.