OutWit.Engine.Interfaces 1.0.1

dotnet add package OutWit.Engine.Interfaces --version 1.0.1
                    
NuGet\Install-Package OutWit.Engine.Interfaces -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OutWit.Engine.Interfaces" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OutWit.Engine.Interfaces" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="OutWit.Engine.Interfaces" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OutWit.Engine.Interfaces --version 1.0.1
                    
#r "nuget: OutWit.Engine.Interfaces, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OutWit.Engine.Interfaces@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OutWit.Engine.Interfaces&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=OutWit.Engine.Interfaces&version=1.0.1
                    
Install as a Cake Tool

OutWit.Engine.Interfaces

Core interface definitions for the WitEngine distributed computing system.

Overview

This package contains all public interfaces and contracts that define the WitEngine API. It is the foundation package that all other WitEngine components depend on.

Installation

dotnet add package OutWit.Engine.Interfaces

Key Interfaces

Engine Interfaces

Interface Description
IWitEngine Main engine interface for compiling and executing jobs
IWitEngineNode Compute node interface for distributed execution
IWitControllerHost Plugin interface for host-side controllers
IWitControllerNode Plugin interface for node-side controllers
IWitControllerManager Manages activity and variable adapters
IWitProcessingManager Manages job execution and progress tracking
IWitNodesManager Manages distributed compute nodes

Job Interfaces

Interface Description
IWitJob Represents an executable job
IWitJobBase Base interface for job-like structures
IWitJobFactory Factory for creating job instances

Activity Interfaces

Interface Description
IWitActivity Base interface for all activities
IWitFunction Activity that returns a value
IWitTransform Activity with transformer (arrow syntax)
IWitActivityAdapter Adapter for parsing and processing activities

Variable Interfaces

Interface Description
IWitVariable Base interface for all variables
IWitCollection Variable that holds a collection
IWitVariablesCollection Collection of variables (variable pool)
IWitVariableAdapter Adapter for parsing variables

Parameter Interfaces

Interface Description
IWitParameter Base for all parameter types
IWitConstant Literal constant value
IWitReference Reference to a variable
IWitCondition Conditional operator
IWitArray Array of parameters

Processing Interfaces

Interface Description
IWitProcessingTask Represents a running job
IWitProcessingStatus Status and result of job execution
IWitProcessingOptions Configuration for distributed processing
IWitBenchmarkOptions Options for activity benchmarking
IWitBenchmarkResult Result of benchmark execution

Capability Interfaces

Interface Description
IWitCapabilities Node hardware capabilities
IWitEngineActivityNode Node with activity compatibility info

Usage

Implementing a Controller Plugin

public class MyController : IWitControllerHost, IWitControllerNode
{
    public void Initialize(IServiceCollection services)
    {
        services.AddVariable<MyVariable>();
        services.AddActivityAdapter<MyActivity, MyActivityAdapter>();
    }
}

Implementing an Activity Adapter

public class MyActivityAdapter : IWitActivityAdapter<MyActivity>
{
    public IWitActivity CreateActivity(IWitParameter[] parameters)
    {
        // Parse parameters and create activity
    }

    public async Task<IWitProcessingStatus> Process(
        Guid engineId, 
        Guid jobId,
        MyActivity activity, 
        IWitActivityStatus? status,
        IWitVariablesCollection pool, 
        bool reportProgress)
    {
        // Execute activity logic
    }
}

Implementing a Variable Adapter

public class MyVariableAdapter : IWitVariableAdapter<MyVariable>
{
    public IWitVariable CreateVariable(string name)
    {
        return new MyVariable(name);
    }
}

Project Structure

OutWit.Engine.Interfaces/
  IWitEngine.cs
  IWitEngineNode.cs
  IWitJob.cs
  IWitActivity.cs
  IWitVariable.cs
  ... (other interface definitions)

Dependencies

  • Microsoft.Extensions.DependencyInjection
  • OutWit.Common.Logging
  • OutWit.Common.Plugins.Abstractions

License

This software is licensed under the Non-Commercial License (NCL).

  • Free for personal, educational, and research purposes
  • Commercial use requires a separate license agreement
  • Contact licensing@ratner.io for commercial licensing inquiries

See the full LICENSE file for details.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on OutWit.Engine.Interfaces:

Package Downloads
OutWit.Engine.Data

Data models, base classes, and utilities for WitEngine controllers and activities. Includes activity adapters, variable implementations, serialization support, and processing status types.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 114 1/16/2026