API Reference - ruvnet/ruv-FANN GitHub Wiki

API Reference - ruv-FANN Ecosystem

Core Libraries

ruv-FANN Core Neural Network API

NeuralNetwork

use ruv_fann::prelude::*;

// Create network
let mut net = NeuralNetwork::builder()
    .input_size(3)
    .hidden_layers(&[4, 2])
    .output_size(1)
    .activation(Activation::Sigmoid)
    .build()?;

// Training
net.train(&training_data, epochs, learning_rate)?;

// Inference
let output = net.run(&input_data)?;

TrainingData

// XOR training example
let training_data = vec![
    ([0.0, 0.0, 1.0], [0.0]),
    ([0.0, 1.0, 1.0], [1.0]),
    ([1.0, 0.0, 1.0], [1.0]),
    ([1.0, 1.0, 1.0], [0.0]),
];

Semantic Cartan Matrix API

RootVector Operations

use semantic_cartan_matrix::micro_core::*;

// Create SIMD-aligned vector
let mut vector = RootVector::new();
vector.set_component(0, 1.0)?;

// Mathematical operations
let norm = vector.norm();
let dot_product = vector.dot(&other_vector);

// Validation
assert!(vector.is_valid());

CartanMatrix

use semantic_cartan_matrix::micro_core::*;

// Create Cartan matrix
let mut matrix = CartanMatrix::new(rank)?;
matrix.set_entry(0, 1, -1.0)?; // Off-diagonal entries
matrix.set_entry(1, 0, -1.0)?;

// Validate mathematical properties
assert!(matrix.is_cartan_matrix());

Attention Mechanisms

use semantic_cartan_matrix::micro_cartan_attn::*;

// Single-head attention
let attention = CartanAttention::new(
    input_dim: 256,
    output_dim: 256,
)?;

let output = attention.forward(&query, &key, &value)?;

// Multi-head attention
let multi_head = MultiHeadAttention::new(
    num_heads: 8,
    input_dim: 512,
    head_dim: 64,
)?;

let attended = multi_head.forward(&input)?;

Swarm Orchestration API

SwarmOrchestrator

use semantic_cartan_matrix::micro_swarm::*;

// Create orchestrator
let mut orchestrator = SwarmOrchestrator::new(
    SwarmConfig {
        max_agents: 10,
        strategy: CoordinationStrategy::Hierarchical,
        consensus_threshold: 0.66,
    }
)?;

// Register agent
let agent = Box::new(MyMicroNet::new(config));
orchestrator.register_agent(agent)?;

// Orchestrate task
let task = Task::new("process_data", priority::HIGH);
let result = orchestrator.orchestrate(task).await?;

REST API Endpoints

Swarm Management

Create Swarm

POST /api/v1/swarms
Content-Type: application/json

{
  "name": "research-swarm",
  "strategy": "balanced", 
  "maxAgents": 10
}

Get Swarm Status

GET /api/v1/swarms/{swarmId}/status

Response:
{
  "id": "swarm-123",
  "status": "active",
  "agents": 5,
  "tasks": {
    "pending": 2,
    "running": 3,
    "completed": 45
  }
}

Agent Management

Spawn Agent

POST /api/v1/swarms/{swarmId}/agents
Content-Type: application/json

{
  "name": "research-agent",
  "type": "researcher",
  "capabilities": ["analysis", "search"],
  "neuralConfig": {
    "architecture": {
      "input_size": 256,
      "hidden_layers": [128, 64],
      "output_size": 32
    }
  }
}

JavaScript/TypeScript SDK

RuvSwarm Client

import { RuvSwarm, SwarmConfig } from 'ruv-swarm';

// Initialize
const ruvSwarm = await RuvSwarm.initialize({
  wasmPath: './node_modules/ruv-swarm/wasm',
  useSIMD: true
});

// Create swarm
const swarm = await ruvSwarm.createSwarm({
  name: 'analysis-swarm',
  strategy: 'adaptive',
  maxAgents: 8
});

// Spawn agents
const agents = await Promise.all([
  swarm.spawn({ type: 'researcher', name: 'r1' }),
  swarm.spawn({ type: 'analyst', name: 'a1' }),
  swarm.spawn({ type: 'coder', name: 'c1' })
]);

// Execute task
const result = await swarm.orchestrate({
  description: 'Analyze dataset',
  priority: 'high',
  parameters: { 
    dataset: 'data.csv',
    method: 'statistical'
  }
});

Neural Network Integration

import { NeuralNetwork } from 'ruv-swarm/neural';

// Create network with WASM acceleration
const network = new NeuralNetwork({
  architecture: [784, 128, 64, 10],
  activation: 'relu',
  optimizer: 'adam',
  useSIMD: true
});

// Train
await network.train(trainingData, {
  epochs: 100,
  batchSize: 32,
  learningRate: 0.001
});

// Predict
const predictions = await network.predict(testData);

Python Integration (PyO3)

import ruv_swarm

# Initialize with WASM
swarm = ruv_swarm.RuvSwarm()
await swarm.initialize(use_simd=True)

# Create swarm
swarm_config = {
    'name': 'python-swarm',
    'strategy': 'hierarchical',
    'max_agents': 6
}

instance = await swarm.create_swarm(swarm_config)

# Spawn specialized agents
researcher = await instance.spawn({
    'name': 'researcher-1',
    'type': 'researcher',
    'capabilities': ['data_analysis', 'web_search']
})

# Execute coordinated task
task = {
    'description': 'Market analysis',
    'priority': 'high',
    'parameters': {
        'timeframe': '30d',
        'sectors': ['tech', 'finance']
    }
}

result = await instance.orchestrate(task)
print(f"Analysis complete: {result}")

Error Handling

Rust Error Types

use semantic_cartan_matrix::prelude::*;

match result {
    Ok(value) => println!("Success: {:?}", value),
    Err(CartanError::InvalidDimension(msg)) => {
        eprintln!("Dimension error: {}", msg);
    },
    Err(CartanError::MathematicalConstraint(msg)) => {
        eprintln!("Mathematical constraint violation: {}", msg);
    },
    Err(CartanError::SwarmCoordination(msg)) => {
        eprintln!("Swarm coordination failed: {}", msg);
    }
}

JavaScript Error Handling

try {
    const result = await swarm.orchestrate(task);
    console.log('Success:', result);
} catch (error) {
    if (error.code === 'SWARM_001') {
        console.error('Swarm initialization failed:', error.message);
    } else if (error.code === 'AGENT_002') {
        console.error('Agent spawn timeout:', error.message);
    } else {
        console.error('Unknown error:', error);
    }
}

Configuration

Rust Configuration

use semantic_cartan_matrix::config::*;

let config = SwarmConfig {
    max_agents: 10,
    strategy: CoordinationStrategy::Adaptive,
    neural_config: NeuralConfig {
        precision: Precision::F32,
        simd_enabled: true,
        memory_pool_size: 1024 * 1024, // 1MB
    },
    persistence: PersistenceConfig::SQLite {
        path: "./swarm.db".into(),
        connection_pool_size: 10,
    },
};

Environment Variables

# Performance
RUV_SWARM_MAX_AGENTS=10
RUV_SWARM_USE_SIMD=true
RUV_SWARM_MEMORY_POOL=2GB

# Networking
RUV_SWARM_HOST=0.0.0.0
RUV_SWARM_PORT=3001
RUV_SWARM_WEBSOCKET_PORT=3002

# Database
RUV_SWARM_DB_URL=sqlite://swarm.db
RUV_SWARM_DB_POOL_SIZE=10

# Logging
RUST_LOG=info
RUV_SWARM_LOG_LEVEL=debug

This API reference provides comprehensive coverage of all public interfaces available in the ruv-FANN ecosystem, from low-level mathematical operations to high-level swarm orchestration.