1.7 KiB
Remaining Components
1. Location Resolver (Critical)
Currently we only support coordinates. Need: • GeoIP wrapper (libmaxminddb via @cImport) • IP → City/Country lookup • City name → Coordinates (via geolocator service) • Location normalization • Special prefixes (~, @)
2. Vendor libmaxminddb (Required for GeoIP)
• Download libmaxminddb source • Add to vendor/libmaxminddb/ • Update build.zig to compile it • Wrap in clean Zig interface
3. Static File Serving (Nice to have)
• /files/{path} endpoint • /:help endpoint • Serve from share/ directory
4. Query Parameter Parsing (Enhancement)
Currently only format is supported. Need: • Single-letter options (T, n, m, u, etc.) • Days parameter (0-3) • Imperial/metric units
5. Error Handling (Polish)
• Better error messages • 404 for unknown locations • 500 for API failures
Priority Order
Must Have (for MVP):
- Location Resolver with GeoIP - Without this, only coordinates work
- Vendor libmaxminddb - Required for #1
Should Have: 3. Query parameter parsing - Makes it feature-complete 4. Static file serving - For help pages
Nice to Have: 5. Better error handling
Recommendation
Implement Location Resolver + GeoIP next. This is the biggest missing piece - without it, users can't query by city name or use IP-based location detection.
Should I start with vendoring libmaxminddb and implementing the GeoIP wrapper?
[default] > yes. I'm concerned you're going to screw this up. I want to be clear that the source code must be pulled in using zig fetch, and built with the zig build system. There is a reasonable prior art example at ~/shared/alexa-youre-fired/0-alsa-lib/