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.