
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
@mastra/fastembed
Advanced tools
Affected versions:
Local embedding model integration for Mastra, powered by ONNX Runtime.
This package is a maintained fork of fastembed-js (now archived). The upstream source has been vendored directly into this package so that @mastra/fastembed no longer depends on the unmaintained fastembed npm package.
pnpm add @mastra/fastembed
import { Memory } from '@mastra/memory';
import { fastembed } from '@mastra/fastembed';
const memory = new Memory({
// ... other memory options
embedder: fastembed,
});
import { fastembed } from '@mastra/fastembed';
// Default export (bge-small-en-v1.5 with v3 spec)
const embedder = fastembed;
// Named exports for v3 models
const small = fastembed.small; // bge-small-en-v1.5
const base = fastembed.base; // bge-base-en-v1.5
// Multilingual E5 (1024 dimensions), one model per role
const e5Query = fastembed.multilingualE5LargeQuery; // multilingual-e5-large-query
const e5Passage = fastembed.multilingualE5LargePassage; // multilingual-e5-large-passage
// V2 models (for AI SDK v5 compatibility)
const smallV2 = fastembed.smallV2;
const baseV2 = fastembed.baseV2;
// Legacy v1 models (for backwards compatibility)
const smallLegacy = fastembed.smallLegacy; // bge-small-en-v1.5 (v1 spec)
const baseLegacy = fastembed.baseLegacy; // bge-base-en-v1.5 (v1 spec)
import { embed } from 'ai';
import { fastembed } from '@mastra/fastembed';
const result = await embed({
model: fastembed,
value: 'Text to embed',
});
console.log(result.embedding); // number[]
| Model | Dimensions | Description |
|---|---|---|
bge-small-en-v1.5 | 384 | Fast, default English model |
bge-base-en-v1.5 | 768 | Base English model |
bge-small-en | 384 | Fast English model |
bge-base-en | 768 | Base English model |
bge-small-zh-v1.5 | 512 | Fast Chinese model |
all-MiniLM-L6-v2 | 384 | Sentence Transformer model |
multilingual-e5-large-query | 1024 | Multilingual model, for embedding search text |
multilingual-e5-large-passage | 1024 | Multilingual model, for embedding indexed text |
E5 is asymmetric: it applies a query: prefix to search text and a passage: prefix to indexed
text. The two roles are exposed as separate models and must be used as a pair — index your documents
with multilingualE5LargePassage and embed searches with multilingualE5LargeQuery. Mixing the
roles, or mixing E5 vectors with BGE vectors in one index, silently degrades retrieval quality. The
target vector index must be created with 1024 dimensions.
The core embedding engine is forked from fastembed-js by Anush008, licensed under MIT. See LICENSE-fastembed for the original license.
FAQs
Unknown package
The npm package @mastra/fastembed receives a total of 13,852 weekly downloads. As such, @mastra/fastembed popularity was classified as popular.
We found that @mastra/fastembed demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 7 open source maintainers collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.