Suprnova 4.3.0 has been released
I've been building something pretty ambitious into Suprnova, my Laravel-inspired Rust framework.
Three tightly integrated engines: Search, Recommendations, and a Knowledge Graph.
And you don't need a collection of external services to use them.
🔎 1. Search Engine
Suprnova includes a full-featured search engine built directly into the framework.
Full-text search with relevance ranking
Typo tolerance, synonyms, and highlighting
Filtering, faceting, sorting, and geospatial search
Federated search across multiple indexes
Hybrid lexical + semantic vector search
Optional local AI embeddings, including multimodal support
Pluggable backends, including your existing SQL database and Qdrant
Declare your Eloquent models searchable and Suprnova handles the indexing, retrieval, ranking, and model hydration.
No Elasticsearch, Meilisearch, or hosted search service required.
🎯 2. Starter Recommendation Engine
Not every application needs a complex machine-learning recommendation system.
Suprnova includes a recommendation engine that works without embeddings or an external AI service.
It learns from interactions such as views, clicks, likes, shares, purchases, skips, and hides.
It combines several recommendation strategies:
Collaborative filtering based on shared engagement
Attribute affinity using searchable document facets
Popularity based on actual activity
Freshness and recency
Optional semantic similarity
The engine progressively falls back through these strategies when stronger recommendation signals aren't available.
Recommendations are explainable, respect access permissions, and are backed by an immutable interaction history.
You can build personalized feeds and content discovery without deploying an ML infrastructure.
🕸️ 3. Knowledge Graph Recommendation Engine
Here's where things get particularly interesting.
Suprnova also includes a knowledge graph engine that connects searchable documents through shared engagement and explicitly declared relationships.
Instead of merely asking, "What did similar users like?", it can evaluate relationships between content, people, and their interactions.
The graph combines:
Multi-hop relationship traversal
Shared engagement patterns
Semantic similarity from existing search vectors
Social proximity
Freshness and negative feedback
Trust signals and diversity controls
It ranks recommendations dynamically from the graph, with verifiable provenance linking recommendations to the evidence behind them.
Access controls apply at every hop, not just to the final result.
And if the graph doesn't have sufficient evidence? It automatically falls back to the starter recommendation engine.
The graph can run directly in your existing SQL database or use Memgraph.
Here's what makes the architecture interesting:
These aren't three separate products glued together.
Search provides the indexed documents and optional vectors.
The recommendation engine captures interactions and builds an explainable behavioral history.
The knowledge graph turns those documents, interactions, and relationships into richer contextual recommendations.
The engines share data, scopes, and infrastructure. Search impressions and validated clicks can even feed directly into recommendation events.
Start with ordinary full-text search. Add personalized recommendations. Enable graph-based discovery as engagement grows.
All inside the same Rust framework, with a consistent API and no mandatory third-party SaaS dependency.
That's the kind of infrastructure I think modern application frameworks should provide out of the box.
Built with Rust. Powered by Tokio.
#RustLang #OpenSource #Suprnova
https://suprnova.app/docs/recommendations
https://suprnova.app/docs/search

SuprnovaRecommendations · SuprnovaYou record interactions with searchable documents and read recommendations through Recommend. The starter engine uses SQL events, search facets, timestamps, scopes, and optional search vectors. You need no embedding model to...
commit e0f1a9a