Appose

User Guide

  • Getting Started
    • Installation
    • Prerequisites
    • Your First Appose Program
    • Understanding the Code
    • Next Steps
    • Building Custom Environments
  • Core Concepts
    • Architecture Overview
    • Builder
      • Builder Types
      • Builder Features
    • Environment
      • Creating Workers
    • Service
      • Service Lifecycle
      • Creating Tasks
    • Task
      • Task Lifecycle
      • Executing Tasks
      • Task Inputs and Outputs
      • Non-Serializable Objects and Proxies
      • Task Callbacks
      • Canceling Tasks
    • Worker
      • Built-in Workers
      • Task Context in Workers
      • Custom Workers
    • Shared Memory
      • SharedMemory
      • NDArray
        • Data Types
        • Shape and Axis Order
      • Passing NDArrays to Workers
      • NumPy Integration (Python)
      • ImgLib2 Integration (Java)
      • Shared Memory Lifecycle
  • Examples
    • Basic Examples
      • Simple Calculation
      • With Inputs and Outputs
    • Progress Tracking
      • Golden Ratio Approximation
    • Environment Building
      • Conda Environment
      • Pixi Environment
      • uv Environment
      • From Environment Files
      • Wrapping Existing Environments
    • Advanced Examples
      • Multiple Tasks in Sequence
      • Error Handling
    • Real-World Use Cases
      • Deep Learning Inference
      • Data Science Pipeline
  • Python Environment Best Practices
    • Choosing an Environment Manager
    • Pixi: Single-Platform Quickstart
    • Pixi: Multi-Platform Configuration
    • Pixi: CUDA Feature Pattern
    • Pixi: Apple Silicon and the nometal Pattern
    • Combining Features: Dev + CUDA
    • Using a pixi.toml with Appose
    • Detecting GPU Availability at Runtime
    • Complete Example: TensorFlow Worker
    • Summary of Best Practices
  • Capturing Output
    • Environment Building
      • subscribeOutput / subscribe_output
      • subscribeError / subscribe_error
      • subscribeProgress / subscribe_progress
      • logDebug / log_debug
      • Catching BuildException
    • Service and Worker Communication
      • service.debug
      • service.invalidLines / service.invalid_lines
      • service.errorLines / service.error_lines
    • Task Events
      • task.listen / task.listen
    • The Stderr Attribution Gap
  • Worker Protocol
    • Protocol Overview
    • Worker Contract
    • Request Format
      • Common Fields
      • Request Types
        • EXECUTE
        • CANCEL
    • Response Format
      • Common Fields
      • Response Types
        • LAUNCH
        • UPDATE
        • COMPLETION
        • CANCELATION
        • FAILURE
    • Task Context
      • Required Properties
      • Required Methods
    • Example Implementation Flow
    • Reference Implementations
      • Python Worker
      • Groovy Worker
    • Creating Custom Workers
      • Minimal Worker Example
    • Best Practices
    • Data Type Considerations
      • Beyond JSON-Native Types
      • Supported Extended Types
        • SharedMemory
        • NDArray
        • WorkerObject (Remote Object Proxies)
      • Encoding Rules
      • Decoding Rules
    • Testing Your Worker

Reference

  • Frequently Asked Questions
    • General Questions
      • What is Appose?
      • What languages does Appose support?
      • Why use Appose instead of other IPC solutions?
      • What was Appose originally designed for?
    • Installation and Setup
      • Where are environments stored by default?
      • Can I use an existing conda/pixi environment?
      • Which environment builder should I use?
    • Usage Questions
      • How do I pass data between processes?
      • How do I handle long-running tasks?
      • Can I run multiple tasks in parallel?
      • How do I handle errors in tasks?
    • Advanced Questions
      • Can I create custom workers?
      • Can I use other transport layers besides pipes+JSON?
      • Can Appose work across machines?
      • Can I add custom data type converters?
    • Troubleshooting
      • My environment build is hanging
      • The worker process crashes immediately
      • My task outputs are empty
      • Tasks are slow to start
      • How do I debug worker communication?
    • Community and Support
      • Where can I report bugs or request features?
      • Where is the source code?
      • How can I contribute?
      • Is Appose production-ready?
      • What’s the license?
  • Alternatives and Complements
    • Alternatives
      • Apache Arrow
      • NATS.io
      • CuVec
      • gRPC
      • ZeroMQ
    • Complementary Tools
      • Conda/Mamba/Pixi
      • uv
      • NumPy/PyTorch/TensorFlow
      • Docker/Podman
    • Comparison Matrix
    • Choosing the Right Tool
      • Can I use multiple tools together?

Links

  • GitHub Repository
  • Issue Tracker
  • Java Implementation
  • Python Implementation
Appose
  • Search


© Copyright 2024, Appose Contributors.

Built with Sphinx using a theme provided by Read the Docs.