explaingit

burningtyger/farhang-app

Analysis updated 2026-07-12 · repo last pushed 2019-05-08

3RubyAudience · developerComplexity · 3/5DormantLicenseSetup · hard

TLDR

A web app for searching and browsing dictionary databases, built for languages with non-Latin scripts. It powers a live German-Persian dictionary and can be adapted for other language pairs.

Mindmap

mindmap
  root((repo))
    What it does
      Web dictionary interface
      Search and browse entries
      Supports non-Latin scripts
    Tech stack
      Ruby Sinatra
      Sequel ORM
      SQLite database
      ICU text processing
    Use cases
      Community dictionaries
      Bilingual references
      Niche language pairs
    Audience
      Dictionary maintainers
      Community projects
      Developers
    Deployment
      Compile C library
      Server config required
      MIT and CC licensed
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run a searchable web interface for a bilingual dictionary using your own word entries.

USE CASE 2

Build an online reference for two languages that lack commercial dictionary products.

USE CASE 3

Fork the app and dictionary data to create a community-maintained language resource.

USE CASE 4

Power a niche dictionary site with proper search support for non-Latin alphabets.

What is it built with?

RubySinatraSequelSQLiteICU

How does it compare?

burningtyger/farhang-appjordansissel/node-packagingmastodon/webpush
Stars332
LanguageRubyRubyRuby
Last pushed2019-05-082010-12-312025-01-13
MaintenanceDormantDormantStale
Setup difficultyhardmoderatemoderate
Complexity3/52/52/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires compiling a C ICU library on the server for non-Latin text search, which the README acknowledges can be finicky across systems.

MIT license for the code and Creative Commons for the dictionary data, use and fork both freely.

In plain English

Farhang is a web-based dictionary application. Rather than being a dictionary itself, it provides a clean and simple interface for searching and browsing dictionary content that lives in a database. You can see it in action powering a German-Persian dictionary at farhang.im, and the full database of entries from that site is freely available to download. The project is built in Ruby using Sinatra and Sequel, which are tools for creating web applications and talking to databases. It uses SQLite as its database engine, and relies on a component called ICU to handle proper text searching for languages that use non-Latin scripts. This is what enables accurate searching across different alphabets and character sets, which is essential for something like a German-to-Persian dictionary. Someone running a niche or community dictionary project would use this to get a working search interface up and running without building everything from scratch. For example, a team maintaining a bilingual reference for two languages that don't typically get commercial dictionary products could load their word entries into a database and use this app to let visitors look things up online. The project is explicitly designed to work with other dictionaries beyond the original German-Persian one, so it is flexible for different language pairs. One notable wrinkle is the ICU setup. Getting proper search to work requires compiling a small C library on the server where the app runs, and the exact steps can vary depending on the system. The README acknowledges this can be finicky and points to a forum post for troubleshooting. This means deploying it requires some comfort with low-level system configuration, not just standard web app deployment. The project is open source under MIT and Creative Commons licensing, and the creator welcomes forks of both the code and the dictionary data.

Copy-paste prompts

Prompt 1
I want to use the Farhang dictionary app for a Spanish-Quechua bilingual dictionary. Walk me through how to load my word entries into the SQLite database and get the search interface running locally.
Prompt 2
Help me set up the ICU C library on my Ubuntu server so that the Farhang dictionary app can do proper text searching for non-Latin scripts. The README says this step can be finicky.
Prompt 3
I forked the Farhang German-Persian dictionary app and want to adapt it for a French-Arabic dictionary. What configuration and database schema changes do I need to make?
Prompt 4
I have the Farhang app cloned but I'm stuck on the ICU compilation step. Walk me through troubleshooting it step by step for macOS.

Frequently asked questions

What is farhang-app?

A web app for searching and browsing dictionary databases, built for languages with non-Latin scripts. It powers a live German-Persian dictionary and can be adapted for other language pairs.

What language is farhang-app written in?

Mainly Ruby. The stack also includes Ruby, Sinatra, Sequel.

Is farhang-app actively maintained?

Dormant — no commits in 2+ years (last push 2019-05-08).

What license does farhang-app use?

MIT license for the code and Creative Commons for the dictionary data, use and fork both freely.

How hard is farhang-app to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is farhang-app for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.