the AI data enginethe AI data enginethe AI data engine
for modern workloadsLLMs unlocked new ways to work with data. typedef is the engine built to power them. serverless, inference-first, and built for scale.
//invite-only preview
typedef is
Say goodbye to brittle UDFs, hacky microservices, and fragile glue code.
The old stack wasn’t designed for inference, semantics, or LLMs.
typedef brings structure + reliability to AI-native data pipelines.
So you can build deterministic workflows on top of non-deterministic models.

optimized for AIoptimized for AIoptimized for AI
pythonapplicants = df.filter( (fc.col('yoe') > 5) & fc.semantic.predicate("Has MCP Protocol experience? {resume}") ) semantic_join_prompt = """ Is this candidate a good fit for the job? Candidate Background: {resume:left} Job Requirements: {description:right} Use the following criteria to make your decision: ... """ joined = applicants.semantic.join( jobs, semantic_join_prompt ).order_by("application_date").limit(5)
Semantic Operations as DataFrame Primitives
Transform unstructured and structured data using familiar DataFrame operations. If you know PySpark or Pandas, you know typedef. Semantic operations like classification work just like filter, map and aggregate.
pythondf = ( df .with_column("raw_blog", fc.col("blog").cast(fc.MarkdownType)) .with_column( "chunks", fc.markdown.extract_header_chunks("raw_blog", ...) ) .with_column("title", fc.json.jq("raw_blog", ...)) .explode("chunks") .with_column( "embeddings", fc.semantic.embed(fc.col("chunks").content)) )
Rust-Powered Multimodal Engine
The only engine that goes beyond standard multimodal types. Native support for markdown, transcripts, embeddings, HTML, JSON and others, with specialized operations. Rust performance meets Python simplicity to process any data at any scale.
pythonclass Ticket(BaseModel): customer_tier: Literal["free", "pro", "enterprise"] region: Literal["us", "eu", "apac"] issues: List[Issue] tickets = (df .with_column("extracted", fc.semantic.extract("raw_ticket", Ticket)) .unnest("extracted") .filter(fc.col("region") == "apac") .explode("issues") ) bugs = tickets.filter(fc.col("issues").category == "bug")
Schema driven Extraction
Type-safe structured extraction from unstructured text. Define schemas once, get validated results every time. Eliminates prompt engineering brittleness and manual validation.
pythonconfig = fc.SessionConfig( app_name="my_app", semantic=fc.SemanticConfig( language_models={ "nano": fc.OpenAIModelConfig( "gpt-4.1-nano", rpm=500, tpm=200_000 ), "flash": fc.GoogleGLAModelConfig( "gemini-2.0-flash-lite", ... ), }, default_language_model="flash", ), cloud=fc.CloudConfig(...), ) session = fc.Session.get_or_create(config)
Develop Locally, Scale on Cloud
Develop locally with fenic, deploy to typedef cloud instantly. Zero code changes from prototype to production. Same code, automatic scaling.
buildersbuildersbuilders