OutWit.Engine 1.1.1

dotnet add package OutWit.Engine --version 1.1.1
                    
NuGet\Install-Package OutWit.Engine -Version 1.1.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" Version="1.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OutWit.Engine" Version="1.1.1" />
                    
Directory.Packages.props
<PackageReference Include="OutWit.Engine" />
                    
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 --version 1.1.1
                    
#r "nuget: OutWit.Engine, 1.1.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@1.1.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&version=1.1.1
                    
Install as a Cake Addin
#tool nuget:?package=OutWit.Engine&version=1.1.1
                    
Install as a Cake Tool

OutWit.Engine

Full WitEngine host for distributed computing orchestration.

Overview

This is the main WitEngine package that provides complete distributed computing capabilities. It orchestrates job execution across multiple compute nodes, handles plugin loading, and manages the full lifecycle of distributed computations.

Note

This package is not published to nuget.org. It is intended for internal use and deployment on WitCloud infrastructure. For plugin development and testing, use OutWit.Engine.Sdk instead.

Features

  • Full distributed computing support
  • Multi-node task distribution
  • Plugin system with isolated contexts
  • Script compilation and execution
  • Benchmark-based load balancing
  • Fault tolerance and retry logic

Architecture

WitEngine (Host)
    |
    +-- ParsingManager (script compilation)
    |
    +-- ControllerManager (plugin management)
    |
    +-- ProcessingManager (job execution)
    |
    +-- NodesManager (distributed nodes)
            |
            +-- Node 1 (WitEngineNode)
            +-- Node 2 (WitEngineNode)
            +-- Node N (WitEngineNode)

Usage

Basic Setup

// Initialize with default settings
WitEngine.Instance.Reload();

// Compile and run a job
var job = WitEngine.Instance.Compile(jobScript);
var status = await WitEngine.Instance.ScheduleAndWaitAsync(job);

With Custom Configuration

WitEngine.Instance.Reload(
    id: engineId,
    nodesManager: customNodesManager,
    useIsolatedContext: true,
    logger: myLogger,
    moduleFolder: @"C:\Controllers"
);

Distributed Execution

var job = WitEngine.Instance.Compile(@"
    Job:DistributedJob()
    {
        IntCollection:data = IntRange(1, 100000);
        ProcessingOptions:opts = ProcessingOptions();
        
        IntCollection:results;
        results = Grid.ForEach(item in data, opts) => ExpensiveCalculation(item);
    }
");

var status = await WitEngine.Instance.ScheduleAndWaitAsync(job);

Key Differences from SDK

Feature WitEngine WitEngineSdk
Distributed execution Yes No (local only)
Multi-node support Yes No (MAX_NODES=1)
Activity limits None 50 per job
Variable limits None 100 per job
Execution timeout Configurable 5 minutes
Production use Yes Development only

Project Structure

OutWit.Engine/
  WitEngine.cs             - Main engine singleton
  Managers/
    ResourcesManager.cs    - Localized resources
  Factories/
    WitJobFactory.cs       - Job creation factory
  Properties/
    Resources.resx         - Localized strings

Plugin Loading

Controllers are loaded from the @Controllers folder relative to the engine assembly:

Application/
  WitEngine.dll
  @Controllers/
    variables.module/
      OutWit.Controller.Variables.dll
    special.module/
      OutWit.Controller.Special.dll
    matrices.module/
      OutWit.Controller.Matrices.dll

Dependencies

  • OutWit.Engine.Parser
  • OutWit.Engine.Shared
  • OutWit.Common.Logging
  • OutWit.Common.Plugins
Package Description
OutWit.Engine.Interfaces Core interfaces and contracts
OutWit.Engine.Data Data models and base classes
OutWit.Engine.Parser Script parsing
OutWit.Engine.Shared Shared components
OutWit.Engine.Sdk Development/testing version
OutWit.EngineNode Compute node implementation

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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.1 49 8/12/2026