OPEN SOURCE / APACHE-2.0 / SCALA 2.12

LOAD. TRANSFORM. RANK.

Skynet is a production-shaped runtime for portable MLeap bundles. It turns model artifacts into inspectable HTTP services—with explicit lifecycle control, typed frame transforms, ranking, health checks, graphs, and metrics.

RUNTIME / 0.3.3 REFERENCE
EXAMPLE / RECOMMENDER portable_bundle.zip s3://models/production
METRICSON
EXECpar-12
FRAMES04
ORIGINSFILE / S3 / GCS
FRAME SHAPES04
HTTP OPERATIONS10
RUNTIMEZIO + HTTP4S
01 / SYSTEM

A control plane for the model after training.

Training produces an artifact. Skynet handles what comes next: acquiring the bundle, loading its transformer graph, understanding its schema, executing it safely, and exposing enough evidence to operate it.

01

Portable by construction

Load MLeap bundles from local files, Amazon S3, or Google Cloud Storage.

file:// · s3:// · gs://
02

Frames with structure

Serve Leap, Cartesian, Context, and Prefixed frame shapes through one API.

Frame → DefaultLeapFrame
03

Ranking as a first-class path

Transform, select, group, average, sort, and return top-k identifiers.

rank · group · avg · k
04

Inspect before guessing

Generate sample frames, inspect schemas, render model graphs, and warm models.

sample · graph · health
05

Parallelism per request

Choose sequential, unconstrained parallel, or bounded parallel execution.

seq · par · par-n
06

Operational surface included

Swagger, service and model health, latency histograms, errors, and pool metrics.

/docs · /health · /metrics
02 / LIFECYCLE

The entire serving path is visible.

Each stage has a clear responsibility. Change the artifact source without changing inference. Change request parallelism without rebuilding the service.

  1. 01

    Register

    Name a model and provide its bundle URI.

    PUT /models/{model}
  2. 02

    Acquire

    Resolve the URI through the matching repository adapter.

    file · S3 · GCS
  3. 03

    Load

    Deserialize the MLeap bundle and cache its transformer.

    Bundle[Transformer]
  4. 04

    Warm

    Generate schema-correct sample frames and execute predictions.

    GET /models/{model}/health
  5. 05

    Serve

    Transform or rank frames with request-level execution control.

    POST /transform · /rank
  6. 06

    Observe

    Read response, failure, latency, and executor-pool metrics.

    GET /metrics
03 / HTTP API

A small surface with deep control.

Tapir defines the endpoints once and derives the OpenAPI document used by the bundled Swagger UI. Filter the operations below by intent.

REQUEST LAB

From artifact to ranked output.

PUT /models/recommender
04 / QUICK START

Serve a bundle locally.

Skynet is an open-source runtime, not a hosted account. Clone it, choose a port, and register the model artifact you want the process to serve.

JDK 11sbt 1.xMLeap bundle
01

Clone and run

git clone https://github.com/AdrielC/skynet.git
cd skynet && HTTP_PORT=8080 sbt run
02

Verify the runtime

curl http://localhost:8080/health
03

Register a bundle

curl -X PUT http://localhost:8080/models/recommender --data 's3://models/recommender.zip'
04

Inspect and test

Open http://localhost:8080/docs for Swagger, or ask the model for a schema-correct sample at /models/recommender/sample.

05 / OPERATE

Know what the runtime is doing.

Skynet’s operational surface covers the service, each loaded model, every named endpoint, and the executors doing the work.

PROMETHEUS / LIVE
http_requests_duration_millis
endpoint × status
http_requests_total
service × error
workers_count
blocking × async
pool_tasks_enqueued
executor pressure
HEALTH / SERVICEGET /health

Confirms the model registry is available.

HEALTH / MODELGET /models/{model}/health

Runs generated sample data through the loaded transformer.

SCHEMA / SAMPLEGET /models/{model}/sample

Produces input shaped to the model’s declared schema.

GRAPH / INSPECTGET /models/{model}/graph

Renders the model’s internal computation graph as SVG.

OPEN SOURCE / BUILD WITH IT

The model is portable.
The runtime should be legible.

View source Open an issue