Skip to main content

Crate fraiseql_functions

Crate fraiseql_functions 

Source
Expand description

FraiseQL serverless functions runtime.

This crate provides the core infrastructure for executing serverless functions in FraiseQL, with support for multiple runtimes (WASM, Deno, etc.).

§Architecture

  • FunctionRuntime: Trait for implementing function execution backends
  • WasmRuntime: WASM component model executor (feature: runtime-wasm)
  • DenoRuntime: JavaScript/TypeScript executor via V8 (feature: runtime-deno)
  • FunctionObserver: Integrates with fraiseql-observers for trigger execution

Re-exports§

pub use host::HostContext;
pub use host::NoopHostContext;
pub use observer::FunctionObserver;
pub use outbound::EmailTransport;
pub use outbound::LoginEmailSender;
pub use outbound::SendContext;
pub use outbound::SendEmailRequest;
pub use outbound::SendEmailResponse;
pub use outbound::SendPolicyError;
pub use outbound::SenderIdentity;
pub use outbound::SenderIdentityResolver;
pub use outbound::resolve_sender_identity;
pub use runtime::FunctionRuntime;
pub use runtime::SendFunctionRuntime;
pub use triggers::cron::CronScheduler;
pub use triggers::cron::CronSchedulerHandle;
pub use triggers::cron::CronTrigger;
pub use triggers::ingest::Attachment;
pub use triggers::ingest::Classification;
pub use triggers::ingest::InboundMessage;
pub use triggers::ingest::InboundRouting;
pub use triggers::ingest::IngestError;
pub use triggers::ingest::IngestSelector;
pub use triggers::ingest::IngestSource;
pub use triggers::ingest::IngestTrigger;
pub use triggers::ingest::PullBatch;
pub use triggers::ingest::PullContext;
pub use triggers::ingest::PullSource;
pub use triggers::ingest::PushSource;
pub use triggers::ingest::RawDelivery;
pub use triggers::ingest::Recipient;
pub use triggers::ingest::RoutingRule;
pub use triggers::ingest::Source;
pub use triggers::ingest::StorageRef;
pub use triggers::ingest::Transport;
pub use triggers::ingest::email::ParsedEmail;
pub use triggers::ingest::email::PendingAttachment;
pub use triggers::ingest::email::classify;
pub use triggers::ingest::email::derive_thread_key;
pub use triggers::ingest::email::normalize_email;
pub use triggers::ingest::parse_recipient;
pub use triggers::ingest::resolve_routing;
pub use triggers::mutation::AfterMutationTrigger;
pub use triggers::mutation::BeforeMutationChain;
pub use triggers::mutation::BeforeMutationResult;
pub use triggers::mutation::BeforeMutationTrigger;
pub use triggers::mutation::EntityEvent;
pub use triggers::mutation::EventKind;
pub use triggers::mutation::TriggerMatcher;
pub use triggers::mutation::interpret_guest_decision;
pub use triggers::registry::TriggerRegistry;
pub use triggers::source::IngestSink;
pub use triggers::source::SourceOutcome;
pub use triggers::source::run_source_once;
pub use types::EventPayload;
pub use types::FunctionDefinition;
pub use types::FunctionModule;
pub use types::FunctionResult;
pub use types::FunctionsConfig;
pub use types::LogEntry;
pub use types::LogLevel;
pub use types::ResourceLimits;
pub use types::RunAs;
pub use types::RuntimeType;
pub use bytes;
pub use chrono;
pub use reqwest;
pub use serde_json;
pub use wasmtime;

Modules§

host
Host context trait for function runtime access to FraiseQL services.
migrations
Database migrations for functions infrastructure tables.
observer
Function observer for executing functions in response to events.
outbound
Per-user outbound-send policy — the sender-identity rule for any paired outbound email.
runtime
Function runtime trait and implementations.
triggers
Trigger system for serverless functions.
types
Core types for function execution.