| Crates.io | amaters-server |
| lib.rs | amaters-server |
| version | 0.1.0 |
| created_at | 2026-01-19 01:31:45.389128+00 |
| updated_at | 2026-01-19 01:31:45.389128+00 |
| description | AmateRS server binary |
| homepage | |
| repository | https://github.com/cool-japan/amaters |
| max_upload_size | |
| id | 2053510 |
| size | 490,625 |
AmateRS Server Binary
amaters-server is the main server binary for AmateRS. It integrates all components (Iwato, Yata, Ukehi, Musubi) into a unified server process that can run standalone or in a distributed cluster.
# Build from source
cargo build --release --bin amaters-server
# Run
./target/release/amaters-server --config config.toml
# Start single-node server
amaters-server start --data-dir ./data
# Start cluster node
amaters-server start \
--node-id node-1 \
--peers node-2:7878,node-3:7878 \
--data-dir ./data
# Check status
amaters-server status --addr localhost:7878
# Stop gracefully
amaters-server stop --addr localhost:7878
Create config.toml:
[server]
bind_address = "0.0.0.0:7878"
data_dir = "/var/lib/amaters"
log_level = "info"
[storage]
engine = "lsm" # "memory" or "lsm"
wal_dir = "/var/lib/amaters/wal"
cache_size_mb = 1024
compaction_threads = 4
[compute]
fhe_backend = "cpu" # "cpu", "cuda", "metal"
max_circuit_size = 10000
bootstrap_threads = 8
[network]
max_connections = 1000
idle_timeout_ms = 60000
tls_cert = "/etc/amaters/server.crt"
tls_key = "/etc/amaters/server.key"
[cluster]
enabled = true
node_id = "node-1"
peers = ["node-2:7878", "node-3:7878"]
election_timeout_ms = 1000
[observability]
metrics_port = 9090
tracing_endpoint = "localhost:4317"
log_format = "json"
amaters-server
├── Config Loader
├── Storage (Iwato)
│ ├── LSM-Tree
│ ├── WAL
│ └── vLog
├── Compute (Yata)
│ ├── Circuit Compiler
│ ├── Optimizer
│ └── Executor
├── Network (Musubi)
│ ├── gRPC Server
│ └── Connection Pool
├── Cluster (Ukehi)
│ ├── Raft
│ └── Sharding
└── Observability
├── Metrics
├── Logging
└── Tracing
# Development
cargo run --bin amaters-server -- start
# Production
./amaters-server start \
--config /etc/amaters/config.toml \
--log-level info
# Node 1
./amaters-server start \
--node-id node-1 \
--bind 0.0.0.0:7878 \
--peers node-2:7878,node-3:7878
# Node 2
./amaters-server start \
--node-id node-2 \
--bind 0.0.0.0:7878 \
--peers node-1:7878,node-3:7878
# Node 3
./amaters-server start \
--node-id node-3 \
--bind 0.0.0.0:7878 \
--peers node-1:7878,node-2:7878
FROM rust:1.85-alpine as builder
WORKDIR /build
COPY . .
RUN cargo build --release --bin amaters-server
FROM alpine:latest
RUN apk add --no-cache ca-certificates
COPY --from=builder /build/target/release/amaters-server /usr/local/bin/
EXPOSE 7878 9090
CMD ["amaters-server", "start"]
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: amaters
spec:
serviceName: amaters
replicas: 3
selector:
matchLabels:
app: amaters
template:
metadata:
labels:
app: amaters
spec:
containers:
- name: amaters
image: amaters:latest
ports:
- containerPort: 7878
- containerPort: 9090
volumeMounts:
- name: data
mountPath: /var/lib/amaters
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
Prometheus metrics exposed on /metrics:
# Storage
amaters_storage_ops_total
amaters_storage_latency_seconds
amaters_storage_size_bytes
# Compute
amaters_fhe_operations_total
amaters_fhe_circuit_size
amaters_fhe_execution_seconds
# Network
amaters_network_connections
amaters_network_requests_total
amaters_network_errors_total
# Cluster
amaters_cluster_nodes
amaters_cluster_leader
amaters_cluster_raft_term
# HTTP health endpoint
curl http://localhost:9090/health
# gRPC health check
grpcurl -plaintext localhost:7878 grpc.health.v1.Health/Check
bootstrap_threadscache_size_mbmax_connectionsnetstat -an | grep 7878amaters-server validate-configjournalctl -u amaters -flog_level = "debug"curl localhost:9090/metricstelnet node-2 7878amaters-server statusLicensed under MIT OR Apache-2.0
COOLJAPAN OU (Team KitaSan)