Blog
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

Dagster Pipes: Now available for 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

We're always happy to hear your feedback, so please reach out to us! If you have any questions, ask them in the Dagster community Slack (join here!) or start a Github discussion. If you run into any bugs, let us know with a Github issue. And if you're interested in working with us, check out our open roles!

Follow us:

Dagster Newsletter

Get updates delivered to your inbox

Latest writings

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

DSLs to the Rescue

June 17, 2025

DSLs to the Rescue

Designing better data tooling with DSLs

How US Foods Eliminated Data Silos and Achieved Near-Perfect Reliability with Dagster

June 17, 2025

How US Foods Eliminated Data Silos and Achieved Near-Perfect Reliability with Dagster

See how US Foods transformed their chaotic data infrastructure into a reliable, scalable platform using Dagster. This Fortune 500 case study reveals how they achieved 99.996% uptime, eliminated data silos, and built a self-service platform that supports $24B in annual operations.

Code Location Best Practices

June 12, 2025

Code Location Best Practices

How to organize your code locations for clarity, maintainability, and reuse.