Blog
Dagster Pipes: Now available for TypeScript, Rust, and Java

Dagster Pipes: Now available for TypeScript, Rust, and Java

May 12, 2025
Dagster Pipes: Now available for TypeScript, Rust, and Java
Dagster Pipes: Now available for TypeScript, Rust, and Java

Expanding Dagster pipes to support Typescript, Rust, and Java

Why Expanding Dagster Pipes Matters

At Dagster, we understand that data teams work with diverse technology stacks. Its why we built Pipes, a standardized interface to launch code in external environments with minimal additional dependencies. Pipes maintains full visibility through parameter passing, streaming logs, and structured metadata making it particularly powerful for incremental adoption.

With the help of our community we’ve expanded our pipes availability to includeTypeScript, Rust, and Java. With these new implementations, you can now:

  • Leverage Dagster Pipes in more ecosystems: If your team is working with TypeScript on a Node.js backed, Rust for high-performance data processing, or Java for enterprise-scale applications, you can now integrate seamlessly with Dagster.
  • Standardize orchestration across your stack: No need to rewrite logic in Python—just use the language that makes the most sense for your project.

What’s New: Pipes for TypeScript, Rust, and Java

TypeScript

Dagster Pipes for TypeScript brings orchestration capabilities to TypeScript. Now, backend teams working in the Node.js ecosystem can integrate their processes into Dagster with ease.

Rust

Dagster Pipes for Rust is perfect for teams that require high-performance, memory-efficient data processing. With Rust’s growing presence in the data ecosystem, this implementation ensures safe, concurrent, and lightning-fast pipeline execution.

  • Great for data-intensive workloads where performance is key.
  • Provides Rust’s strong memory safety guarantees.
  • Ideal for processing large-scale analytics workloads.

Java

Dagster Pipes for Java brings orchestration to one of the most widely used enterprise languages. Java-based data platforms, machine learning pipelines, and legacy applications can now seamlessly integrate with Dagster’s orchestration framework.

  • Essential for teams working in enterprise environments.
  • Ensures compatibility with JVM-based data ecosystems.
  • Supports large-scale, mission-critical workflows.

Typescript example:

In your Typescript project, import @dagster-io/dagster-pipes from npm and then you can pipe information back to your Dagster context.

// main.ts

import OpenAI from 'jsr:@openai/openai';
import * as dagster_pipes from '@dagster-io/dagster-pipes';

using context = dagster_pipes.openDagsterPipes()
const client = new OpenAI();

const response = await client.responses.create({
  model: 'gpt-4o',
  instructions: 'You are a coding assistant that talks like a pirate',
  input: 'Are semicolons optional in JavaScript?',
});

// [optional] return structured logs to Dagster
context.logger.info(response.output_text);

// [optional] send metadata to Dagster and report an asset materialization
context.reportAssetMaterialization(
    {
        "openai_model": response.model
    }
)

On the Dagster side, you simply have your asset return the PipesSubprocess Client.

import subprocess
from pathlib import Path
import dagster as dg

@dg.asset(
)
def example_typescript_asset(
    context: dg.AssetExecutionContext,
    pipes_subprocess_client: dg.PipesSubprocessClient
) -> dg.MaterializeResult:
    external_script_path = dg.file_relative_path(__file__, "../main.js")

    return pipes_subprocess_client.run(
        command=["node", Path(external_script_path)],
        context=context,
    ).get_materialize_result()


defs = dg.Definitions(
    assets=[example_typescript_asset],
    resources={
        "pipes_subprocess_client": dg.PipesSubprocessClient()
    },
)

And you’ll get an output like this :

Getting Started

Ready to integrate Dagster Pipes into your TypeScript, Rust, or Java projects? Check out the documentation for each implementation and start orchestrating today:

Let us know how you’re using these new implementations by joining the Dagster community, and if there’s a pipes implementation you’d like to see let us know on Github or Slack. We’d love to collaborate with you.

Slack, Github

Have feedback or questions? Start a discussion in Slack or Github.

Interested in working with us? View our open roles.

Want more content like this? Follow us on LinkedIn.

Dagster Newsletter

Get updates delivered to your inbox

Latest writings

The latest news, technologies, and resources from our team.

Dagster 1.12: Monster Mash
Dagster 1.12: Monster Mash

October 30, 2025

Dagster 1.12: Monster Mash

A refined Dagster experience. Faster navigation, GA Components, plug-and-play deployment, improved orchestration with FreshnessPolicies, and a new Support Center for builders at scale.

How Compass Turns Questions Into Queries
How Compass Turns Questions Into Queries

October 23, 2025

How Compass Turns Questions Into Queries

Go behind the scenes of Compass, Dagster’s analyst copilot, to see how it transforms plain-language questions into precise, optimized SQL queries. Learn how each step of the query-generation process helps analysts move faster and stay focused on insights.

Scaling Analysis Without Scaling the Team
Scaling Analysis Without Scaling the Team

October 20, 2025

Scaling Analysis Without Scaling the Team

Learn how to maximize the impact of your data stack with a lean team—keeping your analysts at the heart of every decision.