
Dictpress
https://github.com/knadh/dictpress- Category
- Productivity
- Rank
- No. 828Tools index
- 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 configuration → Live dictionary website
Publish dictionary APIs
Dictionary data and language definitions → RESTful API endpoints
Store and manage dictionary entries
Word definitions, translations, and metadata → Organized dictionary database
Enable word lookups
Search queries and terms → Matching dictionary entries and definitions
Support multiple languages
Language-specific dictionary data → Multi-language dictionary websites
Provide web-based dictionary interface
User search requests → Formatted dictionary results in web browser
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.