← Open Source
mni-ml

framework

A machine learning library with a TypeScript API and Rust backend. CUDA and WebGPU compatibility. Built to understand how ML frameworks and models work internally.

Model DevelopmentDeep Learning FrameworksRust
Open on GitHub
Momentum
+1stars in 24 hours+0.1%
1.02k
Stars
131
Forks
+2
This week
2
Contributors
Created 2026-01-08 · Updated 2026-10-15 · #5928 today
Top developers

mni-ml/framework is ranked 5,928 with 1,017 stars.

Same-category comparison

mni-ml/framework is ranked 5,928 among these 8 peers; graspologic-org/graspologic is ranked 5,927.

Same-category comparison
NameRankMetrics
videoflow/videoflow5,896
Language:
Python
Stars:
1,044
Forks:
90
Description:
Python framework that facilitates the quick development of complex video analysis applications and other series-processing based applications in a multiprocessing environment.
graspnet/graspnet-baseline5,905
Language:
Python
Stars:
1,037
Forks:
236
Description:
Baseline model for "GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping" (CVPR 2020).
maximeraafat/BlenderNeRF5,926
Language:
Python
Stars:
1,018
Forks:
76
Description:
Easy NeRF synthetic dataset creation within Blender.
graspologic-org/graspologic5,927
Language:
Python
Stars:
1,017
Forks:
174
Description:
Python package for graph statistics.
LeCAR-Lab/dial-mpc5,932
Language:
Python
Stars:
1,011
Forks:
104
Description:
Official implementation for the paper "Full-Order Sampling-Based MPC for Torque-Level Locomotion Control via Diffusion-Style Annealing". DIAL-MPC is a novel sampling-based MPC framework for legged robot full-order torque-level control with both precision and agility in a training-free manner.
TinyLLaVA/TinyLLaVA_Factory5,935
Language:
Python
Stars:
1,010
Forks:
100
Description:
A Framework of Small-scale Large Multimodal Models.
pjlab-sys4nlp/llama-moe5,940
Language:
Python
Stars:
1,005
Forks:
60
Description:
⛷️ LLaMA-MoE: Building Mixture-of-Experts from LLaMA with Continual Pre-training (EMNLP 2024).
havakv/pycox5,947
Language:
Python
Stars:
1,000
Forks:
205
Description:
Survival analysis with PyTorch.
Key parameters and specifications
Key parameters and specifications
ParameterValue
LanguageRust
CategoryModel Development
SubcategoryDeep Learning Frameworks
KeywordsCoding, CUDA programming, Deep Research, Kernel
Stars1,017
Forks131
Contributors2
Created date2026-01-08
Updated date2026-10-15
Stars in 1 day1
Stars in 7 days2
Rank5,928
Previous rank11,987
Rank change6,059
7-day stars rank8,306
Previous 7-day stars rank10,345
7-day stars rank change2,039
Total stars rank11,020
Previous total stars rank11,009
Total stars rank change-11
Frequently asked questions

How many stars and forks are recorded?

mni-ml/framework has 1,017 stars and 131 forks.

What is the repository rank?

mni-ml/framework is ranked 5,928.

What language and category are recorded?

mni-ml/framework has 1,017 stars, uses Rust and belongs to Model Development.

Which repository is closest in rank?

mni-ml/framework is compared with graspologic-org/graspologic, ranked 5,927 with 1,017 stars.

README

@mni-ml/framework

A TypeScript ML framework with Rust native backends (CPU, CUDA, WebGPU) providing autograd, tensor operations, and neural network training at GPU speed.

Features

  • Automatic differentiation -- full backward pass through an autograd tape
  • GPU acceleration -- CUDA (NVIDIA) and WebGPU (Metal/Vulkan/DX12) backends
  • PyTorch-like API -- familiar Tensor, Module, Parameter, optimizer classes
  • Comprehensive ops -- elementwise, matmul, conv1d/conv2d, pooling, reductions, activations
  • Built-in modules -- Linear, Conv1d, Conv2d, Embedding, ReLU, Sigmoid, Tanh
  • Optimizers -- SGD and Adam (AdamW) with learning rate scheduling

Installation

npm install @mni-ml/framework

Quick Start

import { Tensor, Linear, Adam, Parameter, softmax, crossEntropyLoss } from '@mni-ml/framework';

// Create tensors
const x = Tensor.rand([32, 10]);
const targets = [[0], [1], [2], /* ... */];

// Build a model
const layer1 = new Linear(10, 64);
const layer2 = new Linear(64, 3);

// Forward pass
let h = layer1.forward(x).relu();
let logits = layer2.forward(h);
let loss = crossEntropyLoss(logits, targets);

// Backward pass
loss.backward();

// Optimize
const params = [...layer1.parameters(), ...layer2.parameters()];
const optimizer = new Adam(params, 0.001);
optimizer.step();
optimizer.zeroGrad();

API Reference

Tensor

// Creation
Tensor.zeros([2, 3])           // zero-filled
Tensor.ones([2, 3])            // one-filled
Tensor.rand([2, 3])            // uniform [0, 1)
Tensor.randn([2, 3])           // normal distribution
Tensor.fromFloat32(data, shape) // from Float32Array

// Arithmetic (with autograd)
a.add(b)       a.add(2.0)     // addition
a.sub(b)                       // subtraction
a.mul(b)       a.mul(2.0)     // multiplication
a.div(b)       a.div(2.0)     // division
a.neg()                        // negation
a.exp()        a.log()        // exponentials
a.pow(2)                       // power

// Activations
a.relu()       a.sigmoid()

// Reductions
a.sum(dim)     a.sum()        // sum along dim or all
a.mean(dim)    a.mean()       // mean along dim or all
a.max(dim)                     // max along dim

// Comparisons (returns 0/1 tensor, no gradient)
a.lt(b)        a.gt(b)        a.eq(b)
a.isClose(b, tol)

// Layout
a.view(2, 3)                   // reshape
a.permute(1, 0)                // transpose
a.contiguous()                 // ensure contiguous memory

// Linear algebra
a.matmul(b)                    // matrix multiplication

// Convolution
a.conv1d(weight, stride, padding)
a.conv2d(weight, stride, padding)

// Utilities
a.clone()      a.detach()     // copy / detach from graph
a.toString()                   // debug string
a.backward()                   // run backward pass
a.setRequiresGrad(true)        // enable gradient tracking

Neural Network Modules

import { Linear, Conv1d, Conv2d, ReLU, Sigmoid, Embedding } from '@mni-ml/framework';

const linear = new Linear(inputSize, outputSize);
const conv1d = new Conv1d(inChannels, outChannels, kernelSize, stride, padding);
const conv2d = new Conv2d(inChannels, outChannels, kernelSize, stride, padding);
const embedding = new Embedding(vocabSize, embeddingDim);

// Use in forward pass
const out = linear.forward(input);

Functional Operations

import { softmax, gelu, layerNorm, crossEntropyLoss, dropout,
         avgpool2d, maxpool2d, tile } from '@mni-ml/framework';

const sm = softmax(logits, dim);
const g = gelu(x);
const ln = layerNorm(x, gamma, beta, eps);
const loss = crossEntropyLoss(logits, targets);
const dropped = dropout(x, rate, training);
const pooled = avgpool2d(x, kernelH, kernelW);
const maxPooled = maxpool2d(x, kernelH, kernelW);
const tiled = tile(x, [2, 1]);

Optimizers

import { Adam, SGD } from '@mni-ml/framework';

const optimizer = new Adam(parameters, lr, beta1, beta2, eps, weightDecay);
// or
const optimizer = new SGD(parameters, lr);

optimizer.step();      // update parameters
optimizer.zeroGrad();  // clear gradients

Backend Architecture

TypeScript API (tensor.ts, nn.ts, optimizer.ts)
    │
    └─→ N-API Bridge (lib.rs)
            │
            ├─→ CPU Backend (Vec, pure Rust)
            ├─→ CUDA Backend (cudarc + .cu kernels)
            └─→ WebGPU Backend (wgpu + .wgsl shaders)

All three backends share the same autograd tape and tensor store. Feature flags are mutually exclusive at compile time:

  • cpu -- default, no GPU required
  • cuda -- NVIDIA GPU via CUDA
  • webgpu -- any GPU via wgpu (Metal, Vulkan, DX12)

Building from source

Only needed if you are contributing or want a custom build. Requires Rust.

# CPU (default)
npm run build:native

# CUDA (requires CUDA toolkit)
npm run build:native:cuda

# WebGPU
npm run build:native:webgpu

# Build TypeScript
npm run build

License

MIT

Nearby in the ranking
Similar items