Vibeleaderboard
Index / app
Visit dict.press
Category
Productivity
Rank
Pricing
Open Source
Type
APP
Builder
knadh
GitHub
468 stars
Latest release
v5.0.0-rc5
Date

About

Self-hosted web server for publishing full-fledged dictionary websites and APIs for any language.

What it does

Dictpress turns structured lexical data into a searchable public site, JSON endpoints, and a managed editorial system. It imports entries from CSV into SQLite, supports multiple language pairs, and can customize tokenization with built-in logic or Lua scripts. Operators can add a theme for rendered pages or run only the API.

Why it's ranked here

Its scope is unusually complete for a focused dictionary system. Search, autocomplete, glossaries, moderation, entry relationships, bulk import, theming, and sitemap generation share one application and database. The strongest case is operational simplicity: a single binary and SQLite replace a larger service stack, while configuration still permits several dictionaries and languages.

What's good

Language handling is a first-class concern. Each language can select its own tokenizer, including Lua extensions for specialized search behavior. Full-text search, phonetic approaches, trie-based autocomplete, and configurable dictionary pairs cover more than simple word lookup. The embedded admin interface supports entry editing, relationships, pending submissions, comments, approval, and rejection. Optional memory or disk-backed caching gives larger installations a tuning path.

Tradeoffs

Running the service still requires careful configuration of languages, dictionary pairs, tokenizers, credentials, and optional themes. A public website needs templates and static assets supplied separately; without them, only API routes and the embedded admin interface remain. Admin protection uses HTTP Basic authentication with one configured username and password. The CSV importer demands exactly eleven columns and a specific row convention. Moving from the older Go and PostgreSQL generation requires adopting the rewritten Rust and SQLite architecture.

How to use it well

Use it when editors need to publish and maintain one or more multilingual dictionaries from a controlled server. Start with the sample configuration, initialize SQLite, validate tokenizers, then import a well-formed CSV and curate entries through the admin interface. Add a custom theme only when public presentation matters, and enable submissions when community contributions fit the editorial process. It does not provide a general translation engine or automatic dictionary content creation.

Technical notes+

Cargo.toml defines a Rust 2021 binary requiring Rust 1.91, licensed AGPL-3.0, with Axum, Tokio, SQLx SQLite, Tera, vendored Lua 5.4, and Clap. src/cli.rs exposes configuration merging, database selection, site themes, installation, upgrades, CSV import, and sitemap generation. src/http.rs defines public JSON routes, optional site routes, submission endpoints, CRUD administration, relation management, and Basic Auth middleware. src/main.rs assembles SQLite, tokenizers, templates, cache, autocomplete, and the Axum server. src/importer.rs validates an eleven-column format and inserts entries plus definition relations. src/cache.rs supports memory and hybrid disk caching with TTL prefixes. src/db.rs checks recorded schema versions, but its shown upgrade_schema implementation only records the current package version and does not execute schema-changing statements.

Observed

License
AGPL-3.0
Primary language
Rust, edition 2021
Packaging
Single binary built with Cargo; release downloads are the documented installation surface
Storage
SQLite database files accessed through SQLx
Interfaces
Command-line interface, HTTP/JSON API, public website, and embedded admin interface
Extension surface
Custom Tera themes and pluggable Lua 5.4 search tokenizers
Operating modes
API-only operation without a site theme, or rendered site operation with a theme directory

Read from README.md, Makefile, Cargo.toml, src/cli.rs, src/main.rs, src/db.rs, src/http.rs, src/init.rs, src/cache.rs, src/config.rs, src/importer.rs, src/sitemaps.rs, src/autocomplete.rs, src/models/mod.rs, src/manager/mod.rs.

What it can do

  • Host dictionary websites

    Dictionary data and configurationLive dictionary website

  • Publish dictionary APIs

    Dictionary data and language definitionsRESTful API endpoints

  • Store and manage dictionary entries

    Word definitions, translations, and metadataOrganized dictionary database

  • Enable word lookups

    Search queries and termsMatching dictionary entries and definitions

  • Support multiple languages

    Language-specific dictionary dataMulti-language dictionary websites

  • Provide web-based dictionary interface

    User search requestsFormatted dictionary results in web browser

Tags

dictionaryrustself-hostedpublishinglanguage

Tech Stack

Rust

Media

Dictpress

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.