OutWit.Engine
1.1.1
dotnet add package OutWit.Engine --version 1.1.1
NuGet\Install-Package OutWit.Engine -Version 1.1.1
<PackageReference Include="OutWit.Engine" Version="1.1.1" />
<PackageVersion Include="OutWit.Engine" Version="1.1.1" />
<PackageReference Include="OutWit.Engine" />
paket add OutWit.Engine --version 1.1.1
#r "nuget: OutWit.Engine, 1.1.1"
#:package OutWit.Engine@1.1.1
#addin nuget:?package=OutWit.Engine&version=1.1.1
#tool nuget:?package=OutWit.Engine&version=1.1.1
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
Related Packages
| 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 | Versions 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. |
-
net10.0
- OutWit.Common.Logging (>= 1.3.2)
- OutWit.Common.Plugins (>= 1.3.2)
- OutWit.Engine.Parser (>= 1.1.4)
- OutWit.Engine.Shared (>= 1.1.6)
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 | 48 | 8/12/2026 |