mp_core 0.1.1 copy "mp_core: ^0.1.1" to clipboard
mp_core: ^0.1.1 copied to clipboard

Shared types, model configuration, and runtime primitives for MP tasks.

mp_core #

Shared types, model configuration, and runtime primitives for MP tasks.

Use mp_core directly when building a custom task adapter, or transitively through mp_vision, mp_text, mp_audio, or mp_genai.

What it provides #

  • Model assets, image and audio containers, result types, errors, and task lifecycle
  • Immutable image, audio, landmark, classification, detection, embedding, and segmentation containers.
  • Models loaded from bytes, local paths, or absolute URIs.
  • Optional SHA-256 verification for remotely loaded models.
  • CPU, GPU, Edge TPU NNAPI, and LiteRT delegate configuration.
  • Task lifecycle, status errors, timestamp validation, and injectable runtimes.
  • Generated FFI bindings for the public MediaPipe Tasks C headers.
  • Shared browser module and model-asset helpers.

Model assets #

Models are application data, not SDK configuration. Supply one as bytes, a local path, or an absolute HTTPS URI, and pin remote models with a SHA-256 digest:

final local = ModelAsset.path('models/gesture_recognizer.task');
final memory = ModelAsset.bytes(Uint8List.fromList(modelBytes));
final remote = ModelAsset.uri(
  Uri.parse('https://cdn.example.com/models/gesture_recognizer.task'),
  sha256: '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
);

The SDK never chooses or downloads a model without an explicit ModelAsset. Publish immutable, versioned model URLs and always provide a digest for production clients.

Combine a model with a delegate:

final options = BaseOptions(modelAsset: local, delegate: MpDelegate.cpu);

Ownership #

Every created task implements MpTask. Call close() when inference is no longer needed. Closing twice is safe, and invoking a closed task fails immediately with MpTaskClosedError.

final detector = await ObjectDetector.create(options);
try {
  final result = await detector.detect(image);
  // Use the result.
} finally {
  await detector.close();
}

Long-lived tasks belong near the owning feature boundary, not inside a per-frame callback. A task serializes its native calls, so handles are never entered concurrently.

Failure contract #

Unsupported API and platform combinations fail explicitly with MpException(MpStatus.unimplemented, …) rather than silently returning empty results. Check MpStatus before treating a failure as a model or input problem.

Where to go next #

MP is independent software. MediaPipe is a trademark of Google LLC; this project is not affiliated with or endorsed by Google.

0
likes
150
points
395
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Shared types, model configuration, and runtime primitives for MP tasks.

Homepage
Repository (GitHub)
View/report issues

Topics

#mediapipe #machine-learning #on-device

License

Apache-2.0 (license)

Dependencies

archive, code_assets, collection, crypto, ffi, hooks, meta

More

Packages that depend on mp_core