10 个版本
0.3.3 | 2023年7月11日 |
---|---|
0.3.2 | 2023年7月6日 |
0.2.2 | 2023年7月5日 |
0.1.2 | 2022年1月4日 |
0.1.1 | 2019年12月28日 |
#399 在 数据库接口
每月 65 次下载
63KB
1.5K SLoC
neweden:Eve Online 的导航库
neweden 是一个用于 CCP Games 的 MMORPG 游戏 Eve Online 的系统信息、导航和范围查询的 Rust 库。
示例
获取一个星系的信息
use neweden::source::sqlite::DatabaseBuilder;
use neweden::Navigatable;
let universe = DatabaseBuilder::new("./sqlite-latest.sqlite").build().unwrap();
let system_id = 30000142.into(); // returns a SystemId
println!("{:?}", universe.get_system(&system_id).unwrap().name); // Jita
寻找一条路径
use neweden::source::sqlite::DatabaseBuilder;
use neweden::Navigatable;
use neweden::navigation::PathBuilder;
let universe = DatabaseBuilder::new("./sqlite-latest.sqlite").build().unwrap();
let jita = 30000142;
let camal = 30000049;
let path = PathBuilder::new(&universe)
.waypoint(&universe.get_system(&jita.into()).unwrap())
.waypoint(&universe.get_system(&camal.into()).unwrap())
.build();
for system in path {
println!("Waypoint: {}", system.name)
}
开发状态
该库处于开发阶段,处于早期 alpha 阶段。API 将会改变,您的代码可能会出错。这也意味着构建和测试机制略显复杂,但会随着时间的推移而改进。
构建
该库使用 features
来定义检索系统和连接信息的后端。默认情况下,库会构建而不包含任何功能,您只能通过创建自己的数据加载器来创建宇宙。为 CCP 的静态转储提供了构建内数据加载器。您可以使用 postgres
功能启用 PostgreSQL 数据库后端,或使用 sqlite
功能启用 SQLite。
rpc
功能仅供内部使用,依赖于一个非开源的 crate。
构建仓库
git clone https://github.com/dsp/neweden
cd neweden
cargo build --features sqlite
运行测试
要运行测试或基准测试,您必须使用 nightly。如果您使用 database
标志构建,您必须通过环境变量 DATABASE_URL
提供数据库连接。
git clone https://github.com/dsp/neweden
cd neweden
export SQLITE_URI="/path/to/sde/dump"
cargo +nightly test --features sqlite
依赖项
~2.7–7.5MB
~141K SLoC