Cyndra.toml

The file Cyndra.toml can be used for project-local configuration. For the current options available, check out Deployment files.

Workspaces

Cyndra supports cargo workspaces, but only one Cyndra service per workspace. The first workspace member found with a cyndra-runtime dependency and a binary target will be targeted for local runs and deployments.

If Cyndra.toml or Secrets are used, those files should be placed in the root of the workspace.

This is an example of a workspace structure with shared code between a backend and frontend crate:

.
├── .gitignore
├── Cargo.toml
├── Secrets.toml      (optional)
├── Cyndra.toml      (optional)
├── backend/
│   ├── Cargo.toml    (depends on cyndra-runtime)
│   └── src/
│       └── main.rs   (contains #[cyndra_runtime::main])
├── frontend/
│   ├── Cargo.toml
│   └── src/
│       └── main.rs
└── shared/
    ├── Cargo.toml
    └── src/
        └── lib.rs

Cargo feature flags

If the cargo feature cyndra exists, Cyndra activates it and disables default features.

Cargo.toml
# Compiling this package on Cyndra will enable the features
# "cyndra" and "bar". To use default features on Cyndra, add
# "default" to the cyndra array.
[features]
default = ["foo"]
cyndra = ["bar"]
foo = []
bar = []

Multiple binaries

If you want to keep your project structured for allowing both running with and without Cyndra, check out the standalone-binary example. This is great for gradually adding Cyndra into your project.

.cyndra/config.toml

The .cyndra/config.toml is created when linking your project folder to a Cyndra project. It is added to .gitignore by default, and should not be committed.