Ferret is an attempt at a new, self-hosted, independent search engine.
- Simple and accessible pure-HTML user interface
- No tracking or bloat
- Only indexes smaller actually cool sites
- Written in Rust
- Uses the Tokio async framwework
- Uses Axum as a web framework
- SQLx compile-time checked SQL queries
- Install Rust via
- Clone this repository
- Install sqlx-cli
- Set the
DATABASE_URLenvironment variable to
- Install the just command runner
crawler is a self-contained executable, that when ran crawls through the URLs and inserts them into an SQL database.
core is a server that hosts an API to perform search queries on the database.
It creates a seperate indexed table in the database, and has a search endpoint at
It takes a
POST request with a JSON body, and returns a JSON response.
The variables it takes are:
language: an ISO 639-3 lang code
include: the primary search query
ignore: keywords to ignore (optional)