Expand description
caixa-core — manifest types, layout invariants, and version contract
for the caixa tatara-lisp package system.
The caixa.lisp manifest is itself a tatara_lisp::domain::TataraDomain
— parsing is the derive macro, which makes ill-typed manifests impossible
at load time (the same discipline Cargo gets from Cargo.toml, but
enforced by Rust types rather than TOML schema).
Layout invariants (lib/ presence, exe/ population, service entries) are
enforced by LayoutInvariants, run by caixa-feira before any build
step.
Re-exports§
pub use aplicacao::AplicacaoError;pub use aplicacao::AplicacaoSpec;pub use aplicacao::CircuitBreaker;pub use aplicacao::DEFAULT_SERVICO_PORT;pub use aplicacao::Entrada;pub use aplicacao::Membro;pub use aplicacao::MeshPolicy;pub use aplicacao::POLICY_BREAKER_MAX_FAILURES_MAX;pub use aplicacao::POLICY_BREAKER_WINDOW_MAX;pub use aplicacao::POLICY_RATE_LIMIT_MAX;pub use aplicacao::POLICY_RETRIES_MAX;pub use aplicacao::POLICY_TIMEOUT_MAX;pub use aplicacao::Placement;pub use aplicacao::PlacementStrategy;pub use aplicacao::RateLimit;pub use aplicacao::RateLimitUnit;pub use aplicacao::SERVICO_PORT_MIN;pub use aplicacao::WitContract;pub use aplicacao::WitTarget;pub use behavior::BehaviorError;pub use behavior::BehaviorSpec;pub use dep::Dep;pub use dep::DepError;pub use dep::DepList;pub use dep::DepSource;pub use dialeto::CaixaDialeto;pub use dialeto::DialetoError;pub use dialeto::classify as classify_dialeto;pub use kind::CaixaKind;pub use layout::LayoutError;pub use layout::LayoutInvariants;pub use layout::StandardLayout;pub use limits::LIMITS_CPU_MILLICORES_MAX;pub use limits::LIMITS_FUEL_MAX;pub use limits::LIMITS_MEMORY_WASM32_MAX_BYTES;pub use limits::LIMITS_MEMORY_WASM32_PAGE_BYTES;pub use limits::LIMITS_WALL_CLOCK_MAX;pub use limits::LimitsError;pub use limits::LimitsSpec;pub use manifest::Caixa;pub use manifest::LeituraError;pub use manifest::ManifestError;pub use render::CAIXA_KEY_DEPS;pub use render::CAIXA_KEY_DEPS_DEV;pub use render::CAIXA_KIND_LABEL_ACAO;pub use render::CAIXA_KIND_LABEL_APLICACAO;pub use render::CAIXA_KIND_LABEL_BIBLIOTECA;pub use render::CAIXA_KIND_LABEL_BINARIO;pub use render::CAIXA_KIND_LABEL_SERVICO;pub use render::CAIXA_KIND_LABEL_SUPERVISOR;pub use render::CARGO_FEATURE_NAME_MAX_LEN;pub use render::CILIUM_API_VERSION;pub use render::CILIUM_AUTH_MODE_DISABLED;pub use render::CILIUM_AUTH_MODE_REQUIRED;pub use render::CILIUM_KEY_AUTHENTICATION;pub use render::CILIUM_KEY_ENDPOINT_SELECTOR;pub use render::CILIUM_KEY_FROM_ENDPOINTS;pub use render::CILIUM_KEY_HTTP;pub use render::CILIUM_KEY_INGRESS;pub use render::CILIUM_KEY_MODE;pub use render::CILIUM_KEY_PATH;pub use render::CILIUM_KEY_PORTS;pub use render::CILIUM_KEY_TO_PORTS;pub use render::CILIUM_KIND_NETWORK_POLICY;pub use render::CIRCUIT_BREAKER_KEY_MAX_FAILURES;pub use render::CIRCUIT_BREAKER_KEY_WINDOW;pub use render::CLUSTER_BUNDLE_LAREIRA_ENABLED_DEFAULT;pub use render::COMPUTEUNIT_MODULE_KEY_SOURCE;pub use render::COMPUTEUNIT_SPEC_KEY_CAPABILITIES;pub use render::COMPUTEUNIT_SPEC_KEY_MODULE;pub use render::COMPUTEUNIT_SPEC_KEY_TRIGGER;pub use render::COMPUTEUNIT_YAML_SUFFIX;pub use render::CONTRATO_EDGE_LABEL_SEPARATOR;pub use render::CONTRATO_KEY_DE;pub use render::CONTRATO_KEY_PARA;pub use render::CONTRATO_KEY_WIT;pub use render::CiDecomposeFailure;pub use render::DEFAULT_FLUX_CHART_SOURCE_SUBPATH;pub use render::DEFAULT_FLUX_KUSTOMIZATION_TIMEOUT;pub use render::DEFAULT_FLUX_RECONCILE_INTERVAL;pub use render::DEFAULT_FLUX_SYSTEM_NAMESPACE;pub use render::DEFAULT_GATEWAY_CLASS_NAME;pub use render::DEFAULT_LIBRARY_NAME;pub use render::DEFAULT_NAMESPACE;pub use render::DEP_AUTHOR_KEY_DEPS;pub use render::DEP_AUTHOR_KEY_DEPS_DEV;pub use render::DEP_SOURCE_KEY_TIPO;pub use render::DEP_SOURCE_TIPO_GIT;pub use render::DEP_SOURCE_TIPO_PATH;pub use render::DNS_1123_LABEL_MAX_LEN;pub use render::ENTRADA_KEY_HOST;pub use render::ENTRADA_KEY_PARA;pub use render::ENTRADA_KEY_PATHS;pub use render::ENTRADA_KEY_PORT;pub use render::FLEET_PROGRAMS_KEY_APLICACAO;pub use render::FLEET_PROGRAMS_KEY_NAME;pub use render::FLEET_PROGRAMS_KEY_PROGRAMS;pub use render::FLEET_PROGRAMS_KEY_VERSAO;pub use render::FLUX_GITREPOSITORY_API_VERSION;pub use render::FLUX_GITREPOSITORY_KEY_REF;pub use render::FLUX_GITREPOSITORY_KEY_URL;pub use render::FLUX_GITREPOSITORY_REF_KEY_BRANCH;pub use render::FLUX_GITREPOSITORY_REF_KEY_COMMIT;pub use render::FLUX_GITREPOSITORY_REF_KEY_TAG;pub use render::FLUX_GITREPOSITORY_YAML_FILENAME;pub use render::FLUX_HELMCHART_TEMPLATE_KEY_CHART;pub use render::FLUX_HELMRELEASE_API_VERSION;pub use render::FLUX_HELMRELEASE_CREATE_NAMESPACE_DEFAULT;pub use render::FLUX_HELMRELEASE_KEY_CREATE_NAMESPACE;pub use render::FLUX_HELMRELEASE_KEY_INSTALL;pub use render::FLUX_HELMRELEASE_KEY_REMEDIATE_LAST_FAILURE;pub use render::FLUX_HELMRELEASE_KEY_REMEDIATION;pub use render::FLUX_HELMRELEASE_KEY_RETRIES;pub use render::FLUX_HELMRELEASE_KEY_UPGRADE;pub use render::FLUX_HELMRELEASE_REMEDIATE_LAST_FAILURE_DEFAULT;pub use render::FLUX_HELMRELEASE_REMEDIATION_RETRIES_DEFAULT;pub use render::FLUX_HELMRELEASE_YAML_FILENAME;pub use render::FLUX_KEY_CHART;pub use render::FLUX_KEY_HEALTH_CHECKS;pub use render::FLUX_KEY_INTERVAL;pub use render::FLUX_KEY_SOURCE_REF;pub use render::FLUX_KEY_VALUES;pub use render::FLUX_KIND_GIT_REPOSITORY;pub use render::FLUX_KIND_HELM_RELEASE;pub use render::FLUX_KIND_KUSTOMIZATION;pub use render::FLUX_KUSTOMIZATION_API_VERSION;pub use render::FLUX_KUSTOMIZATION_KEY_PATH;pub use render::FLUX_KUSTOMIZATION_KEY_PRUNE;pub use render::FLUX_KUSTOMIZATION_KEY_TIMEOUT;pub use render::FLUX_KUSTOMIZATION_PRUNE_DEFAULT;pub use render::FLUX_KUSTOMIZATION_YAML_FILENAME;pub use render::GATEWAY_API_API_VERSION;pub use render::GATEWAY_API_DEFAULT_HTTP_LISTENER_NAME;pub use render::GATEWAY_API_DEFAULT_HTTP_LISTENER_PORT;pub use render::GATEWAY_API_DEFAULT_HTTP_ROUTE_PATH;pub use render::GATEWAY_API_HOSTNAME_MAX_LEN;pub use render::GATEWAY_API_HTTP_PATH_MAX_LEN;pub use render::GATEWAY_API_KEY_ATTEMPTS;pub use render::GATEWAY_API_KEY_BACKEND_REFS;pub use render::GATEWAY_API_KEY_GATEWAY_CLASS_NAME;pub use render::GATEWAY_API_KEY_HOSTNAME;pub use render::GATEWAY_API_KEY_HOSTNAMES;pub use render::GATEWAY_API_KEY_LISTENERS;pub use render::GATEWAY_API_KEY_MATCHES;pub use render::GATEWAY_API_KEY_NAME;pub use render::GATEWAY_API_KEY_PARENT_REFS;pub use render::GATEWAY_API_KEY_PATH;pub use render::GATEWAY_API_KEY_REQUEST;pub use render::GATEWAY_API_KEY_RETRY;pub use render::GATEWAY_API_KEY_SECTION_NAME;pub use render::GATEWAY_API_KEY_TIMEOUTS;pub use render::GATEWAY_API_KEY_VALUE;pub use render::GATEWAY_API_KIND_GATEWAY;pub use render::GATEWAY_API_KIND_HTTP_ROUTE;pub use render::GATEWAY_API_PATH_MATCH_TYPE_PATH_PREFIX;pub use render::GATEWAY_API_PROTOCOL_HTTP;pub use render::GIT_OID_SHA1_LEN;pub use render::GIT_OID_SHA256_LEN;pub use render::GIT_REF_NAME_MAX_LEN;pub use render::GIT_REPO_URL_MAX_LEN;pub use render::HELM_CHART_API_VERSION;pub use render::HELM_CHART_DEPENDENCY_KEY_ALIAS;pub use render::HELM_CHART_DEPENDENCY_KEY_NAME;pub use render::HELM_CHART_DEPENDENCY_KEY_REPOSITORY;pub use render::HELM_CHART_DEPENDENCY_KEY_VERSION;pub use render::HELM_CHART_KEY_API_VERSION;pub use render::HELM_CHART_KEY_APP_VERSION;pub use render::HELM_CHART_KEY_DEPENDENCIES;pub use render::HELM_CHART_KEY_TYPE;pub use render::HELM_CHART_README_FILENAME;pub use render::HELM_CHART_TYPE_APPLICATION;pub use render::HELM_CHART_TYPE_LIBRARY;pub use render::HELM_CHART_YAML_FILENAME;pub use render::HELM_VALUES_KEY_ENABLED;pub use render::HELM_VALUES_YAML_FILENAME;pub use render::KUBE_KEY_API_VERSION;pub use render::KUBE_KEY_KIND;pub use render::KUBE_KEY_LABELS;pub use render::KUBE_KEY_MATCH_LABELS;pub use render::KUBE_KEY_METADATA;pub use render::KUBE_KEY_NAME;pub use render::KUBE_KEY_NAMESPACE;pub use render::KUBE_KEY_PORT;pub use render::KUBE_KEY_PROTOCOL;pub use render::KUBE_KEY_RULES;pub use render::KUBE_KEY_SPEC;pub use render::KUBE_KEY_TYPE;pub use render::KUBE_PROTOCOL_TCP;pub use render::KindMismatch;pub use render::LABEL_APLICACAO;pub use render::LABEL_CONTRATO;pub use render::LABEL_PROGRAM;pub use render::LAREIRA_CHART_KEYWORDS;pub use render::LAREIRA_CHART_NAME_NOME_MAX_LEN;pub use render::LAREIRA_CHART_NAME_PREFIX;pub use render::LAYOUT_DIR_EXE;pub use render::LAYOUT_DIR_LIB;pub use render::LAYOUT_DIR_SERVICOS;pub use render::LAYOUT_MISSING_ENTRY_KIND_BEHAVIOR_CALLBACK;pub use render::LAYOUT_MISSING_ENTRY_KIND_BIBLIOTECA;pub use render::LAYOUT_MISSING_ENTRY_KIND_EXE;pub use render::LAYOUT_MISSING_ENTRY_KIND_SERVICO;pub use render::LAYOUT_MISSING_ENTRY_KIND_UPGRADE_SCRIPT;pub use render::LISP_SOURCE_EXTENSION;pub use render::M2_AUTHOR_KEY_BEHAVIOR;pub use render::M2_AUTHOR_KEY_LIMITS;pub use render::M2_AUTHOR_KEY_UPGRADE_FROM;pub use render::M2_BEHAVIOR_AUTHOR_KEY_ON_CALL;pub use render::M2_BEHAVIOR_AUTHOR_KEY_ON_CAST;pub use render::M2_BEHAVIOR_AUTHOR_KEY_ON_INFO;pub use render::M2_BEHAVIOR_AUTHOR_KEY_ON_INIT;pub use render::M2_BEHAVIOR_AUTHOR_KEY_ON_STATE_CHANGE;pub use render::M2_BEHAVIOR_AUTHOR_KEY_ON_TERMINATE;pub use render::M2_BEHAVIOR_KEY_ON_CALL;pub use render::M2_BEHAVIOR_KEY_ON_CAST;pub use render::M2_BEHAVIOR_KEY_ON_INFO;pub use render::M2_BEHAVIOR_KEY_ON_INIT;pub use render::M2_BEHAVIOR_KEY_ON_STATE_CHANGE;pub use render::M2_BEHAVIOR_KEY_ON_TERMINATE;pub use render::M2_KEY_BEHAVIOR;pub use render::M2_KEY_LIMITS;pub use render::M2_KEY_UPGRADE_FROM;pub use render::M2_LIMITS_KEY_CPU;pub use render::M2_LIMITS_KEY_FUEL;pub use render::M2_LIMITS_KEY_MEMORY;pub use render::M2_LIMITS_KEY_WALL_CLOCK;pub use render::M2_UPGRADE_FROM_KEY_FROM;pub use render::M2_UPGRADE_FROM_KEY_INSTRUCTIONS;pub use render::M2_UPGRADE_INSTRUCTION_FIELD_KEY_MODULE;pub use render::M2_UPGRADE_INSTRUCTION_FIELD_KEY_SCRIPT;pub use render::M2_UPGRADE_INSTRUCTION_KEY_KIND;pub use render::M2_UPGRADE_INSTRUCTION_KIND_LOAD_MODULE;pub use render::M2_UPGRADE_INSTRUCTION_KIND_PURGE;pub use render::M2_UPGRADE_INSTRUCTION_KIND_RESTART;pub use render::M2_UPGRADE_INSTRUCTION_KIND_SOFT_PURGE;pub use render::M2_UPGRADE_INSTRUCTION_KIND_STATE_CHANGE;pub use render::M3_AUTHOR_KEY_CONTRATOS;pub use render::M3_AUTHOR_KEY_ENTRADA;pub use render::M3_AUTHOR_KEY_MEMBROS;pub use render::M3_AUTHOR_KEY_PLACEMENT;pub use render::M3_AUTHOR_KEY_POLITICAS;pub use render::M3_KEY_PLACEMENT;pub use render::M3_PLACEMENT_ESTRATEGIA_REPLICATED;pub use render::M3_PLACEMENT_ESTRATEGIA_SHARDED;pub use render::M3_PLACEMENT_ESTRATEGIA_SINGLE_NODE;pub use render::M3_PLACEMENT_KEY_AFFINITY;pub use render::M3_PLACEMENT_KEY_CLUSTERS;pub use render::M3_PLACEMENT_KEY_ESTRATEGIA;pub use render::M3_PLACEMENT_KEY_SHARD_KEY;pub use render::MEMBRO_KEY_CAIXA;pub use render::MEMBRO_KEY_VERSAO;pub use render::MappingExt;pub use render::MissingCiSlot;pub use render::NATS_SUBJECT_MAX_LEN;pub use render::OCI_SCHEME_PREFIX;pub use render::PLEME_LABEL_PREFIX;pub use render::POLITICAS_KEY_CIRCUIT_BREAKER;pub use render::POLITICAS_KEY_MTLS_REQUIRED;pub use render::POLITICAS_KEY_RATE_LIMIT;pub use render::POLITICAS_KEY_RETRIES;pub use render::POLITICAS_KEY_TIMEOUT;pub use render::PathShapeViolation;pub use render::RenderError;pub use render::RenderedFile;pub use render::STANDALONE_LAREIRA_ENABLED_DEFAULT;pub use render::SUPERVISOR_AUTHOR_KEY_CHILDREN;pub use render::SUPERVISOR_AUTHOR_KEY_ESTRATEGIA;pub use render::SUPERVISOR_AUTHOR_KEY_MAX_RESTARTS;pub use render::SUPERVISOR_AUTHOR_KEY_RESTART_WINDOW;pub use render::SUPERVISOR_CHILD_KEY_CAIXA;pub use render::SUPERVISOR_CHILD_KEY_RESTART;pub use render::SUPERVISOR_CHILD_KEY_VERSAO;pub use render::SUPERVISOR_CHILD_RESTART_PERMANENT;pub use render::SUPERVISOR_CHILD_RESTART_TEMPORARY;pub use render::SUPERVISOR_CHILD_RESTART_TRANSIENT;pub use render::SUPERVISOR_ESTRATEGIA_ONE_FOR_ALL;pub use render::SUPERVISOR_ESTRATEGIA_ONE_FOR_ONE;pub use render::SUPERVISOR_ESTRATEGIA_REST_FOR_ONE;pub use render::SUPERVISOR_ESTRATEGIA_SIMPLE_ONE_FOR_ONE;pub use render::SUPERVISOR_KEY_CHILDREN;pub use render::SUPERVISOR_KEY_ESTRATEGIA;pub use render::SUPERVISOR_KEY_MAX_RESTARTS;pub use render::SUPERVISOR_KEY_RESTART_WINDOW;pub use render::SequenceExt;pub use render::ServicoCountMismatch;pub use render::WASI_KV_SLOT_MAX_LEN;pub use render::WIT_IDENT_MAX_LEN;pub use render::assert_str_reexport_identity;pub use render::ci_declared_edge_count;pub use render::cilium_auth_mode;pub use render::cilium_network_policy_name;pub use render::contrato_edge_label;pub use render::decompose_ci;pub use render::find_ascii_whitespace_byte;pub use render::find_by_kind;pub use render::find_non_ascii_whitespace_char;pub use render::flux_kustomization_source_subtree;pub use render::gateway_api_http_route_name;pub use render::insert_first_seen;pub use render::is_cargo_feature_name;pub use render::is_computeunit_yaml_extension;pub use render::is_digit_only_magnitude;pub use render::is_dns_1123_label;pub use render::is_gateway_api_http_path;pub use render::is_git_oid;pub use render::is_git_ref_name;pub use render::is_git_repo_url;pub use render::is_lareira_chart_name_shape;pub use render::is_leading_zero_padded_magnitude;pub use render::is_lisp_extension;pub use render::is_nats_subject;pub use render::is_sandboxed_relative_path;pub use render::is_wasi_keyvalue_slot;pub use render::is_wit_world_ref;pub use render::kube_kind_is;pub use render::kube_metadata_str_field;pub use render::kube_resource_skeleton;pub use render::kube_root_str_field;pub use render::label_selector;pub use render::lareira_chart_name;pub use render::oci_chart_ref;pub use render::pleme_program_in_aplicacao_selector;pub use render::pleme_program_selector;pub use render::require_acao_view;pub use render::require_aplicacao_view;pub use render::require_ci;pub use render::require_kind;pub use render::require_positive_bounded_u32;pub use render::require_positive_bounded_u64;pub use render::require_positive_canonical_bounded_duration;pub use render::require_single_servico;pub use render::require_v0_servico_shape;pub use render::require_valid_dns_1123_label;pub use render::require_valid_versao_requirement;pub use render::servico_m2_overlay;pub use render::servico_spec_and_m2_overlay_entries;pub use render::single_field_overlay;pub use render::singleton_mapping_sequence;pub use render::string_keyed_entries;pub use render::upsert_named_entry;pub use render::yaml_string_mapping;pub use supervisor::ChildSpec;pub use supervisor::RestartPolicy;pub use supervisor::RestartStrategy;pub use supervisor::SUPERVISOR_MAX_RESTARTS_MAX;pub use supervisor::SUPERVISOR_RESTART_WINDOW_MAX;pub use supervisor::SupervisorError;pub use supervisor::SupervisorSpec;pub use upgrade::UpgradeError;pub use upgrade::UpgradeFromEntry;pub use upgrade::UpgradeInstruction;pub use upgrade::validate_upgrade_from;pub use upgrade::validate_upgrade_from_against_behavior;pub use upgrade::validate_upgrade_from_against_versao;pub use version::CaixaVersion;pub use version::DEFAULT_GIT_REMOTE;pub use version::DEFAULT_PLEME_GIT_ORG;pub use version::DEFAULT_PUBLISH_TAG_PREFIX;pub use version::VersionError;pub use version::parse_requirement;
Modules§
- aplicacao
- Typed Aplicacao — the fourth caixa kind that turns a graph of Servicos into a single declarative application (mesh).
- behavior
- OTP-shaped behavior callbacks — the typed slot of
caixa.lispthat points at the.lispfiles implementing the lifecycle. - dep
- dialeto
defcaixais spoken by two unrelated declarations. This module makes that a typed fact instead of an anonymous parse failure.- kind
- layout
- Layout invariants — the Rust-enforced package structure.
- limits
- Lunatic-style per-process resource limits — the typed slot of
caixa.lispthat wasm-engine consumes at component instantiation. - manifest
- render
- Render-side helpers shared by every per-Servico renderer
([
caixa-helm], [caixa-flux]) — the canonical place for “if the M2 typed slot is non-empty, emit its camelCase YAML fragment under the agreed key” patterns to live exactly once. - supervisor
- OTP-shaped supervisor trees, encoded as a typed
:kind Supervisorcaixa with a strategy + restart-policy children list. - upgrade
- Erlang/OTP-style appup — declarative upgrade instructions per
prior caixa version. Composes with the
:behavior :on-state-changecallback to deliver state migration during hot upgrades. - version