This repository contains Yummy addons written in Rust.
Rust feature server have been implemented using Actix server.
The server is fully compatible with Feast.
Thus you can use it with the features materialized with Feast to online store.
Currently Redis/RedisCluster
online store implementation is available.
Additionaly only http protocol is supported.
The payload is fully compatible with Feast server:
Request with features list:
{
"features": [
"driver_hourly_stats:conv_rate",
"driver_hourly_stats:acc_rate",
"driver_hourly_stats:avg_daily_trips",
],
"entities": {"driver_id": [1001,1002,1003,1004,1005]},
"full_feature_names": true,
}
Request with feature service:
{
"feature_service": "driver_activity_basic",
"entities": {"driver_id": [1001,1002,1003,1004,1005]},
"full_feature_names": true,
}
Example response:
{"metadata": {"feature_names": ["driver_id",
"driver_hourly_stats__conv_rate",
"driver_hourly_stats__acc_rate",
"driver_hourly_stats__avg_daily_trips"]},
"results": [{"values": [1001, 1002, 1003, 1004, 1005],
"statuses": ["PRESENT", "PRESENT", "PRESENT", "PRESENT", "PRESENT"],
"event_timestamps": ["2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16"]},
{"values": [0.44467267, null, 0.775576, 0.719485, null],
"statuses": ["PRESENT", "PRESENT", "PRESENT", "PRESENT", "PRESENT"],
"event_timestamps": ["2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16"]},
{"values": [0.36920926, null, 0.8855987, 0.09924329, null],
"statuses": ["PRESENT", "PRESENT", "PRESENT", "PRESENT", "PRESENT"],
"event_timestamps": ["2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16"]},
{"values": [821, null, 381, 587, null],
"statuses": ["PRESENT", "PRESENT", "PRESENT", "PRESENT", "PRESENT"],
"event_timestamps": ["2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16",
"2022-10-04T22:46:16"]}]}
Feast protobuf definitions (License) have been used in the project.
Protobuf rust implementation have been used to generate rust code:
protoc --rust_out . $(find . -iname "*.proto")