Buckets:

HuggingFaceDocBuilder's picture
|
download
raw
1.63 kB

Async vs Sync Usage

OpenEnv supports both asynchronous and synchronous usage patterns.

When to Use Each

Pattern Best For Performance
Async Production, multiple environments, high throughput ⚡ Best
Sync Scripts, notebooks, quick experiments 🐢 Good enough

Sync Usage

For simple scripts and notebooks, use the .sync() wrapper:

from openenv import AutoEnv

env = AutoEnv.from_env("echo")

with env.sync() as client:
    result = client.reset()
    result = client.step(action)

Async Usage (Recommended)

For production and parallel environments, use async directly:

import asyncio
from openenv import AutoEnv

async def main():
    env = AutoEnv.from_env("echo")

    async with env as client:
        result = await client.reset()
        result = await client.step(action)

asyncio.run(main())

Parallel Environments

Run multiple environments concurrently:

import asyncio
from openenv import AutoEnv

async def run_episode(env_name: str):
    env = AutoEnv.from_env(env_name)
    async with env as client:
        result = await client.reset()
        # ... run episode
        return result

async def main():
    # Run 4 environments in parallel
    results = await asyncio.gather(
        run_episode("echo"),
        run_episode("echo"),
        run_episode("echo"),
        run_episode("echo"),
    )

asyncio.run(main())

Next Steps

Xet Storage Details

Size:
1.63 kB
·
Xet hash:
9ff67257fec301e325bcb72f4dccf27be986d8767a90bf94a3c79f659776aa1b

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.