The gRPC-Web API for provides nearby japanese train station.
- For automation agent and contributor workflows, see AGENTS.md.
- For system architecture and design decisions, see docs/architecture.md.
- For technical debt analysis and architectural concerns, see docs/technical_debt.md.
This project includes a comprehensive dataset of Japanese railway information in the data/ directory. The data is maintained in CSV format and contributions are primarily targeted at Japanese speakers. For detailed information about data structure and contribution guidelines, please refer to data/README.md.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
Do you like this project? Join our Discord community! https://discord.gg/qKT7zSGQre
This project includes comprehensive tests for the repository layer:
# Using Cargo directly cargo test --lib --package stationapi # Or using Make make test-unit
# Set up environment and run integration tests source .env.test cargo test --lib --package stationapi --features integration-tests # Or using Make make test-integration
# Run unit tests followed by integration tests
make test-allFor detailed testing information, see docs/repository_testing.md.
Repository layer tests cover:
- ✅ Data conversion logic (
Row→Entity) - ✅ Database query operations
- ✅ Error handling and edge cases
- ✅ Filtering conditions (
e_status,passfields) - ✅ Alias handling (line names)
- ✅ Type conversions (
u32↔i32,u32↔i64)
We follow Rust best practices for testing:
- Unit tests run without external dependencies (fast, always available)
- Integration tests controlled by feature flags (opt-in when database is available)
- Cargo-native test execution using standard
cargo testcommands - Makefile shortcuts for common testing workflows
- Bus-related data provided by Tokyo Metropolitan Bureau of Transportation (Toei), licensed under CC BY 4.0
- Station data provided by 駅データ.jp