greeter
Greeter: A Flexible Multi-Language Greeting Tool
Greeter is a command-line tool that says hello, good morning, and other greetings in different languages. The key idea is flexibility—you can build it so that some languages are always available (baked into the main program) while others load only when you ask for them (as separate mini-programs that run on demand). This lets you keep the main app lightweight if you only use one or two languages, but still have access to more when needed.
When you run a command like ./greeter hello --lang=hindi, the app checks if Hindi is built-in. If it is, it uses that code directly. If not, the app launches a separate Hindi plugin (a small program that lives on your system), asks it for the greeting, and shows you the result. From your perspective, it just works—you don't see the difference between built-in and plugin languages.
The clever part of this design is how it mirrors real-world patterns you've probably seen. Go databases, for example, work the same way: you can compile in only the database drivers you need, or load them dynamically. This project does the same thing for languages. The plugins talk to the main app using gRPC, a communication protocol that works over standard input and output, so they don't need special network setup.
Who would use this? Developers exploring plugin architecture, teams building command-line tools that need to stay modular, or anyone learning how to design flexible systems in Go. The README shows you can build three versions: a lightweight one with only English built-in, a version with all languages embedded, or a mixed approach. You can also add your own languages by creating a new plugin folder and telling the build system about it.