Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
IT NachrichtenTelekom: Neuer Reise-eSIM-Dienst T-Travel startet weltweit(21.09.2026 um 11:45 Uhr)
IT NachrichtenSamsung Wallet: Neue Banken mit an Bord(21.09.2026 um 13:07 Uhr)
IT NachrichtenTelekom: Neuer Reise-eSIM-Dienst T-Travel startet weltweit(21.09.2026 um 11:45 Uhr)
IT NachrichtenSamsung Wallet: Neue Banken mit an Bord(21.09.2026 um 13:07 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

9,000+ Downloads in 2 Weeks: I Just Built and Published

Two weeks ago, I published Embex to PyPI and npm. Today: 9,000+ downloads (7K Python, 2K Node.js). I made one LinkedIn post after publishing. That's it. And it didn't even got likes or comments. Here's what I built. What is…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Two weeks ago, I published Embex to PyPI and npm.



Today: 9,000+ downloads (7K Python, 2K Node.js).



I made one LinkedIn post after publishing. That's it. And it didn't even got likes or comments.



Here's what I built.






What is Embex?



A universal ORM for vector databases. One API that works across 7 different databases.



The problem:



Every vector database has a completely different API.



Pinecone:




index.upsert(vectors=[(id, values, metadata)])
results = index.query(vector=query, top_k=5)






Qdrant:




client.upsert(collection_name=name, points=points)
results = client.search(collection_name=name, query_vector=query, limit=5)






Weaviate:




client.data_object.create(data_object, class_name)
results = client.query.get(class_name).with_near_vector(query).do()






Switching from Pinecone to Qdrant means rewriting your entire data layer.



With Embex:




# Works with ANY provider
client = await EmbexClient.new_async(provider="lancedb", url="./data")
await client.insert("products", vectors)
results = await client.search("products", vector=query, top_k=5)

# Switch to Qdrant? Change ONE line:
client = await EmbexClient.new_async(provider="qdrant", url="http://localhost:6333")






Same code. Zero vendor lock-in.






Why I Built It



I needed to test different vector databases for a project. Writing separate implementations for each one seemed wasteful.



So I built one API that works with all of them.






The Tech Stack



Core:




  • Rust (performance-critical operations)

  • PyO3 (Python bindings)

  • Napi-rs (Node.js bindings)

  • SIMD instructions (vector math acceleration)



Why Rust?



Vector operations are CPU-intensive. Rust + SIMD is ~4x faster than pure Python/JavaScript for normalization, similarity calculations, and filtering.



Supported Databases:




  • LanceDB (embedded, file-based)

  • Qdrant (managed/self-hosted)

  • Pinecone (managed)

  • Chroma (embedded/server)

  • PgVector (PostgreSQL extension)

  • Milvus (self-hosted/cloud)

  • Weaviate (managed/self-hosted)






The Launch



Published to PyPI and npm. Made one LinkedIn post. Went back to building.



Downloads started coming in. 9,000+ in two weeks.



I don't know where the traffic came from. PyPI/npm search, probably. Maybe GitHub. I haven't looked at analytics closely.






What I Noticed



23% of downloads are Node.js. I expected mostly Python. Apparently people are building with JavaScript too.



Multi-language support matters. Supporting both Python and Node.js from day one expanded reach.






Example Usage



Python:




from embex import EmbexClient, Vector
from sentence_transformers import SentenceTransformer

client = await EmbexClient.new_async("lancedb", "./data")
model = SentenceTransformer('all-MiniLM-L6-v2')

await client.create_collection("docs", dimension=384)

vectors = [Vector(
id="1",
vector=model.encode("your text").tolist(),
metadata={"text": "your text"}
)]
await client.insert("docs", vectors)

results = await client.search(
"docs",
vector=model.encode("query").tolist(),
top_k=5
)






Node.js:




const { EmbexClient } = require('@bridgerust/embex');
const { pipeline } = require('@xenova/transformers');

const embedder = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2');
const client = await EmbexClient.new({ provider: 'qdrant', url: 'http://localhost:6333' });

await client.insert('docs', documents.map(doc => ({
id: doc.id,
vector: embedder(doc.content),
metadata: { title: doc.title }
})));

const results = await client.search(
'docs',
embedder('search query'),
{ top_k: 10 }
);









What's Next



Short term:




  • Hybrid search (vector + keyword)

  • Performance optimizations

  • More examples



Medium term:




  • Elasticsearch/OpenSearch support

  • Redis vector support

  • Migration utilities






Try It



Python:




pip install embex lancedb sentence-transformers






Node.js:




npm install @bridgerust/embex lancedb @xenova/transformers






Quick test:




import asyncio
from embex import EmbexClient

async def main():
client = await EmbexClient.new_async('lancedb', './data')
await client.create_collection('test', dimension=384)
print('✅ Works')

asyncio.run(main())






Links:








That's it. I built something I needed. Published it. People downloaded it.



Read the full story on my blog: kologojosias.com/embex-9k-downloads



Still building.

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten 9,000+ Downloads in 2 Weeks: I Just Built and Published

Thematisch verwandte Begriffe: 9000, Downloads, Weeks, Just · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-94040 | A flaw has been found in vas3k TaxHacker up to 0.8.5. Affected by this v…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick