eppo-server-sdk 3.0.0 → 3.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0775052b633fb2f4c3e82a21ba50639991ca4b42ff0a50a55c4ab2b529aa4719
4
- data.tar.gz: 4f458d1564173ade8642ebdc81b470bc428e5a7e1b0d63b69ad2457e1f8c9d0b
3
+ metadata.gz: d6fb69972c523dd9d2c7c683c751c012608c63bb36fd3a6fe9463fb27d77d3d6
4
+ data.tar.gz: dfb6b27af63f652094f2141791aaf31be01ce8277801ce6537b30f0cbfa64820
5
5
  SHA512:
6
- metadata.gz: f4b94d40808f4bd2d4db185a4f433049a5613f1e8960e602adcc8d535fc32a7ce0393076c701f9b3e60decbcfdd77fd61740c49f2fcacb52ad08cf60362cd94a
7
- data.tar.gz: 770153966e5026e5d53fcd985fb0f3cc3d6ede13a779d4ec6b6f6b98300e9b1fa6daecfcde81f02c9df56e9d0323b3cd770d24462c653ba6e0a2ecccd88af122
6
+ metadata.gz: 1d191dfefc76fb61a1b873c61da265066e1d674e628864d326d3d51bb3a5c14933fb69aa48e72a1325bd2753a4acc2083bde48d1daf1a408c29b90cea4f858b5
7
+ data.tar.gz: b79006cc38615b15e44d12362fcc61520ae34f852272fe5a42d4761d7e36e5c407aa1a63df0226109c2198a4798fbb0ded3ce3c0b22fa27e004a69165a2a1696
data/Cargo.lock CHANGED
@@ -43,9 +43,9 @@ dependencies = [
43
43
 
44
44
  [[package]]
45
45
  name = "anstream"
46
- version = "0.6.14"
46
+ version = "0.6.15"
47
47
  source = "registry+https://github.com/rust-lang/crates.io-index"
48
- checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
48
+ checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
49
49
  dependencies = [
50
50
  "anstyle",
51
51
  "anstyle-parse",
@@ -58,33 +58,33 @@ dependencies = [
58
58
 
59
59
  [[package]]
60
60
  name = "anstyle"
61
- version = "1.0.7"
61
+ version = "1.0.8"
62
62
  source = "registry+https://github.com/rust-lang/crates.io-index"
63
- checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
63
+ checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
64
64
 
65
65
  [[package]]
66
66
  name = "anstyle-parse"
67
- version = "0.2.4"
67
+ version = "0.2.5"
68
68
  source = "registry+https://github.com/rust-lang/crates.io-index"
69
- checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
69
+ checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
70
70
  dependencies = [
71
71
  "utf8parse",
72
72
  ]
73
73
 
74
74
  [[package]]
75
75
  name = "anstyle-query"
76
- version = "1.1.0"
76
+ version = "1.1.1"
77
77
  source = "registry+https://github.com/rust-lang/crates.io-index"
78
- checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391"
78
+ checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
79
79
  dependencies = [
80
80
  "windows-sys 0.52.0",
81
81
  ]
82
82
 
83
83
  [[package]]
84
84
  name = "anstyle-wincon"
85
- version = "3.0.3"
85
+ version = "3.0.4"
86
86
  source = "registry+https://github.com/rust-lang/crates.io-index"
87
- checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
87
+ checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
88
88
  dependencies = [
89
89
  "anstyle",
90
90
  "windows-sys 0.52.0",
@@ -161,17 +161,26 @@ version = "3.16.0"
161
161
  source = "registry+https://github.com/rust-lang/crates.io-index"
162
162
  checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
163
163
 
164
+ [[package]]
165
+ name = "byteorder"
166
+ version = "1.5.0"
167
+ source = "registry+https://github.com/rust-lang/crates.io-index"
168
+ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
169
+
164
170
  [[package]]
165
171
  name = "bytes"
166
- version = "1.6.1"
172
+ version = "1.7.1"
167
173
  source = "registry+https://github.com/rust-lang/crates.io-index"
168
- checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952"
174
+ checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
169
175
 
170
176
  [[package]]
171
177
  name = "cc"
172
- version = "1.1.6"
178
+ version = "1.1.11"
173
179
  source = "registry+https://github.com/rust-lang/crates.io-index"
174
- checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f"
180
+ checksum = "5fb8dd288a69fc53a1996d7ecfbf4a20d59065bff137ce7e56bbd620de191189"
181
+ dependencies = [
182
+ "shlex",
183
+ ]
175
184
 
176
185
  [[package]]
177
186
  name = "cexpr"
@@ -216,9 +225,9 @@ dependencies = [
216
225
 
217
226
  [[package]]
218
227
  name = "colorchoice"
219
- version = "1.0.1"
228
+ version = "1.0.2"
220
229
  source = "registry+https://github.com/rust-lang/crates.io-index"
221
- checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
230
+ checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
222
231
 
223
232
  [[package]]
224
233
  name = "convert_case"
@@ -238,9 +247,9 @@ dependencies = [
238
247
 
239
248
  [[package]]
240
249
  name = "core-foundation-sys"
241
- version = "0.8.6"
250
+ version = "0.8.7"
242
251
  source = "registry+https://github.com/rust-lang/crates.io-index"
243
- checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
252
+ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
244
253
 
245
254
  [[package]]
246
255
  name = "derive_more"
@@ -272,9 +281,9 @@ dependencies = [
272
281
 
273
282
  [[package]]
274
283
  name = "env_filter"
275
- version = "0.1.0"
284
+ version = "0.1.2"
276
285
  source = "registry+https://github.com/rust-lang/crates.io-index"
277
- checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
286
+ checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab"
278
287
  dependencies = [
279
288
  "log",
280
289
  "regex",
@@ -282,9 +291,9 @@ dependencies = [
282
291
 
283
292
  [[package]]
284
293
  name = "env_logger"
285
- version = "0.11.3"
294
+ version = "0.11.5"
286
295
  source = "registry+https://github.com/rust-lang/crates.io-index"
287
- checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
296
+ checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d"
288
297
  dependencies = [
289
298
  "anstream",
290
299
  "anstyle",
@@ -295,7 +304,7 @@ dependencies = [
295
304
 
296
305
  [[package]]
297
306
  name = "eppo_client"
298
- version = "3.0.0"
307
+ version = "3.1.1"
299
308
  dependencies = [
300
309
  "env_logger",
301
310
  "eppo_core",
@@ -308,9 +317,9 @@ dependencies = [
308
317
 
309
318
  [[package]]
310
319
  name = "eppo_core"
311
- version = "1.0.0"
320
+ version = "3.0.0"
312
321
  source = "registry+https://github.com/rust-lang/crates.io-index"
313
- checksum = "d21810a56968888dc45c5b10df36fbff2cdc8e56881766d48a28ad395c3de3e6"
322
+ checksum = "34f3fc5a7f54cc47a5ebf063025176726db7eb5e51661185b5f4d20aaacea611"
314
323
  dependencies = [
315
324
  "chrono",
316
325
  "derive_more",
@@ -486,6 +495,12 @@ version = "0.14.5"
486
495
  source = "registry+https://github.com/rust-lang/crates.io-index"
487
496
  checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
488
497
 
498
+ [[package]]
499
+ name = "hermit-abi"
500
+ version = "0.3.9"
501
+ source = "registry+https://github.com/rust-lang/crates.io-index"
502
+ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
503
+
489
504
  [[package]]
490
505
  name = "http"
491
506
  version = "1.1.0"
@@ -587,9 +602,9 @@ dependencies = [
587
602
 
588
603
  [[package]]
589
604
  name = "hyper-util"
590
- version = "0.1.6"
605
+ version = "0.1.7"
591
606
  source = "registry+https://github.com/rust-lang/crates.io-index"
592
- checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956"
607
+ checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9"
593
608
  dependencies = [
594
609
  "bytes",
595
610
  "futures-channel",
@@ -640,9 +655,9 @@ dependencies = [
640
655
 
641
656
  [[package]]
642
657
  name = "indexmap"
643
- version = "2.2.6"
658
+ version = "2.4.0"
644
659
  source = "registry+https://github.com/rust-lang/crates.io-index"
645
- checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
660
+ checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
646
661
  dependencies = [
647
662
  "equivalent",
648
663
  "hashbrown",
@@ -656,9 +671,9 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
656
671
 
657
672
  [[package]]
658
673
  name = "is_terminal_polyfill"
659
- version = "1.70.0"
674
+ version = "1.70.1"
660
675
  source = "registry+https://github.com/rust-lang/crates.io-index"
661
- checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
676
+ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
662
677
 
663
678
  [[package]]
664
679
  name = "itertools"
@@ -677,9 +692,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
677
692
 
678
693
  [[package]]
679
694
  name = "js-sys"
680
- version = "0.3.69"
695
+ version = "0.3.70"
681
696
  source = "registry+https://github.com/rust-lang/crates.io-index"
682
- checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
697
+ checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
683
698
  dependencies = [
684
699
  "wasm-bindgen",
685
700
  ]
@@ -786,13 +801,14 @@ dependencies = [
786
801
 
787
802
  [[package]]
788
803
  name = "mio"
789
- version = "0.8.11"
804
+ version = "1.0.2"
790
805
  source = "registry+https://github.com/rust-lang/crates.io-index"
791
- checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
806
+ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
792
807
  dependencies = [
808
+ "hermit-abi",
793
809
  "libc",
794
810
  "wasi",
795
- "windows-sys 0.48.0",
811
+ "windows-sys 0.52.0",
796
812
  ]
797
813
 
798
814
  [[package]]
@@ -833,9 +849,9 @@ dependencies = [
833
849
 
834
850
  [[package]]
835
851
  name = "object"
836
- version = "0.36.1"
852
+ version = "0.36.3"
837
853
  source = "registry+https://github.com/rust-lang/crates.io-index"
838
- checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce"
854
+ checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
839
855
  dependencies = [
840
856
  "memchr",
841
857
  ]
@@ -936,9 +952,12 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
936
952
 
937
953
  [[package]]
938
954
  name = "ppv-lite86"
939
- version = "0.2.17"
955
+ version = "0.2.20"
940
956
  source = "registry+https://github.com/rust-lang/crates.io-index"
941
- checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
957
+ checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
958
+ dependencies = [
959
+ "zerocopy",
960
+ ]
942
961
 
943
962
  [[package]]
944
963
  name = "proc-macro2"
@@ -990,18 +1009,18 @@ dependencies = [
990
1009
 
991
1010
  [[package]]
992
1011
  name = "rb-sys"
993
- version = "0.9.98"
1012
+ version = "0.9.100"
994
1013
  source = "registry+https://github.com/rust-lang/crates.io-index"
995
- checksum = "8914b2e6af10bd50dd7aaac8c5146872d3924d6012929b4ff504e988f6badd24"
1014
+ checksum = "87f2ba20be84b32fad6b0ce397764bcdd0f2dca4431cf7035f6a6721e5747565"
996
1015
  dependencies = [
997
1016
  "rb-sys-build",
998
1017
  ]
999
1018
 
1000
1019
  [[package]]
1001
1020
  name = "rb-sys-build"
1002
- version = "0.9.98"
1021
+ version = "0.9.100"
1003
1022
  source = "registry+https://github.com/rust-lang/crates.io-index"
1004
- checksum = "12af68c9757d419b82d65a12b5db538990dfe9416049fea3f0ba4b9a8ca108cd"
1023
+ checksum = "7ecae2bdcb118ee721d9a3929f89e8578237fade298dfcf8c928609aa88abc48"
1005
1024
  dependencies = [
1006
1025
  "bindgen",
1007
1026
  "lazy_static",
@@ -1020,9 +1039,9 @@ checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
1020
1039
 
1021
1040
  [[package]]
1022
1041
  name = "regex"
1023
- version = "1.10.5"
1042
+ version = "1.10.6"
1024
1043
  source = "registry+https://github.com/rust-lang/crates.io-index"
1025
- checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
1044
+ checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
1026
1045
  dependencies = [
1027
1046
  "aho-corasick",
1028
1047
  "memchr",
@@ -1142,9 +1161,9 @@ dependencies = [
1142
1161
 
1143
1162
  [[package]]
1144
1163
  name = "rustls"
1145
- version = "0.23.11"
1164
+ version = "0.23.12"
1146
1165
  source = "registry+https://github.com/rust-lang/crates.io-index"
1147
- checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0"
1166
+ checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
1148
1167
  dependencies = [
1149
1168
  "once_cell",
1150
1169
  "rustls-pki-types",
@@ -1155,9 +1174,9 @@ dependencies = [
1155
1174
 
1156
1175
  [[package]]
1157
1176
  name = "rustls-pemfile"
1158
- version = "2.1.2"
1177
+ version = "2.1.3"
1159
1178
  source = "registry+https://github.com/rust-lang/crates.io-index"
1160
- checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
1179
+ checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425"
1161
1180
  dependencies = [
1162
1181
  "base64",
1163
1182
  "rustls-pki-types",
@@ -1165,9 +1184,9 @@ dependencies = [
1165
1184
 
1166
1185
  [[package]]
1167
1186
  name = "rustls-pki-types"
1168
- version = "1.7.0"
1187
+ version = "1.8.0"
1169
1188
  source = "registry+https://github.com/rust-lang/crates.io-index"
1170
- checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
1189
+ checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
1171
1190
 
1172
1191
  [[package]]
1173
1192
  name = "rustls-webpki"
@@ -1235,18 +1254,18 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
1235
1254
 
1236
1255
  [[package]]
1237
1256
  name = "serde"
1238
- version = "1.0.204"
1257
+ version = "1.0.207"
1239
1258
  source = "registry+https://github.com/rust-lang/crates.io-index"
1240
- checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
1259
+ checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2"
1241
1260
  dependencies = [
1242
1261
  "serde_derive",
1243
1262
  ]
1244
1263
 
1245
1264
  [[package]]
1246
1265
  name = "serde_derive"
1247
- version = "1.0.204"
1266
+ version = "1.0.207"
1248
1267
  source = "registry+https://github.com/rust-lang/crates.io-index"
1249
- checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
1268
+ checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e"
1250
1269
  dependencies = [
1251
1270
  "proc-macro2",
1252
1271
  "quote",
@@ -1264,11 +1283,12 @@ dependencies = [
1264
1283
 
1265
1284
  [[package]]
1266
1285
  name = "serde_json"
1267
- version = "1.0.120"
1286
+ version = "1.0.124"
1268
1287
  source = "registry+https://github.com/rust-lang/crates.io-index"
1269
- checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5"
1288
+ checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d"
1270
1289
  dependencies = [
1271
1290
  "itoa",
1291
+ "memchr",
1272
1292
  "ryu",
1273
1293
  "serde",
1274
1294
  ]
@@ -1425,9 +1445,9 @@ dependencies = [
1425
1445
 
1426
1446
  [[package]]
1427
1447
  name = "syn"
1428
- version = "2.0.72"
1448
+ version = "2.0.74"
1429
1449
  source = "registry+https://github.com/rust-lang/crates.io-index"
1430
- checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
1450
+ checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7"
1431
1451
  dependencies = [
1432
1452
  "proc-macro2",
1433
1453
  "quote",
@@ -1469,14 +1489,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
1469
1489
 
1470
1490
  [[package]]
1471
1491
  name = "tempfile"
1472
- version = "3.10.1"
1492
+ version = "3.12.0"
1473
1493
  source = "registry+https://github.com/rust-lang/crates.io-index"
1474
- checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
1494
+ checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
1475
1495
  dependencies = [
1476
1496
  "cfg-if",
1477
1497
  "fastrand",
1498
+ "once_cell",
1478
1499
  "rustix",
1479
- "windows-sys 0.52.0",
1500
+ "windows-sys 0.59.0",
1480
1501
  ]
1481
1502
 
1482
1503
  [[package]]
@@ -1516,9 +1537,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
1516
1537
 
1517
1538
  [[package]]
1518
1539
  name = "tokio"
1519
- version = "1.38.1"
1540
+ version = "1.39.2"
1520
1541
  source = "registry+https://github.com/rust-lang/crates.io-index"
1521
- checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df"
1542
+ checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1"
1522
1543
  dependencies = [
1523
1544
  "backtrace",
1524
1545
  "bytes",
@@ -1526,7 +1547,7 @@ dependencies = [
1526
1547
  "mio",
1527
1548
  "pin-project-lite",
1528
1549
  "socket2",
1529
- "windows-sys 0.48.0",
1550
+ "windows-sys 0.52.0",
1530
1551
  ]
1531
1552
 
1532
1553
  [[package]]
@@ -1580,15 +1601,15 @@ dependencies = [
1580
1601
 
1581
1602
  [[package]]
1582
1603
  name = "tower-layer"
1583
- version = "0.3.2"
1604
+ version = "0.3.3"
1584
1605
  source = "registry+https://github.com/rust-lang/crates.io-index"
1585
- checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
1606
+ checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
1586
1607
 
1587
1608
  [[package]]
1588
1609
  name = "tower-service"
1589
- version = "0.3.2"
1610
+ version = "0.3.3"
1590
1611
  source = "registry+https://github.com/rust-lang/crates.io-index"
1591
- checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
1612
+ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
1592
1613
 
1593
1614
  [[package]]
1594
1615
  name = "tracing"
@@ -1724,19 +1745,20 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
1724
1745
 
1725
1746
  [[package]]
1726
1747
  name = "wasm-bindgen"
1727
- version = "0.2.92"
1748
+ version = "0.2.93"
1728
1749
  source = "registry+https://github.com/rust-lang/crates.io-index"
1729
- checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
1750
+ checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
1730
1751
  dependencies = [
1731
1752
  "cfg-if",
1753
+ "once_cell",
1732
1754
  "wasm-bindgen-macro",
1733
1755
  ]
1734
1756
 
1735
1757
  [[package]]
1736
1758
  name = "wasm-bindgen-backend"
1737
- version = "0.2.92"
1759
+ version = "0.2.93"
1738
1760
  source = "registry+https://github.com/rust-lang/crates.io-index"
1739
- checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
1761
+ checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
1740
1762
  dependencies = [
1741
1763
  "bumpalo",
1742
1764
  "log",
@@ -1749,9 +1771,9 @@ dependencies = [
1749
1771
 
1750
1772
  [[package]]
1751
1773
  name = "wasm-bindgen-futures"
1752
- version = "0.4.42"
1774
+ version = "0.4.43"
1753
1775
  source = "registry+https://github.com/rust-lang/crates.io-index"
1754
- checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
1776
+ checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed"
1755
1777
  dependencies = [
1756
1778
  "cfg-if",
1757
1779
  "js-sys",
@@ -1761,9 +1783,9 @@ dependencies = [
1761
1783
 
1762
1784
  [[package]]
1763
1785
  name = "wasm-bindgen-macro"
1764
- version = "0.2.92"
1786
+ version = "0.2.93"
1765
1787
  source = "registry+https://github.com/rust-lang/crates.io-index"
1766
- checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
1788
+ checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
1767
1789
  dependencies = [
1768
1790
  "quote",
1769
1791
  "wasm-bindgen-macro-support",
@@ -1771,9 +1793,9 @@ dependencies = [
1771
1793
 
1772
1794
  [[package]]
1773
1795
  name = "wasm-bindgen-macro-support"
1774
- version = "0.2.92"
1796
+ version = "0.2.93"
1775
1797
  source = "registry+https://github.com/rust-lang/crates.io-index"
1776
- checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
1798
+ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
1777
1799
  dependencies = [
1778
1800
  "proc-macro2",
1779
1801
  "quote",
@@ -1784,15 +1806,15 @@ dependencies = [
1784
1806
 
1785
1807
  [[package]]
1786
1808
  name = "wasm-bindgen-shared"
1787
- version = "0.2.92"
1809
+ version = "0.2.93"
1788
1810
  source = "registry+https://github.com/rust-lang/crates.io-index"
1789
- checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
1811
+ checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
1790
1812
 
1791
1813
  [[package]]
1792
1814
  name = "web-sys"
1793
- version = "0.3.69"
1815
+ version = "0.3.70"
1794
1816
  source = "registry+https://github.com/rust-lang/crates.io-index"
1795
- checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
1817
+ checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
1796
1818
  dependencies = [
1797
1819
  "js-sys",
1798
1820
  "wasm-bindgen",
@@ -1825,6 +1847,15 @@ dependencies = [
1825
1847
  "windows-targets 0.52.6",
1826
1848
  ]
1827
1849
 
1850
+ [[package]]
1851
+ name = "windows-sys"
1852
+ version = "0.59.0"
1853
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1854
+ checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
1855
+ dependencies = [
1856
+ "windows-targets 0.52.6",
1857
+ ]
1858
+
1828
1859
  [[package]]
1829
1860
  name = "windows-targets"
1830
1861
  version = "0.48.5"
@@ -1956,6 +1987,27 @@ dependencies = [
1956
1987
  "windows-sys 0.48.0",
1957
1988
  ]
1958
1989
 
1990
+ [[package]]
1991
+ name = "zerocopy"
1992
+ version = "0.7.35"
1993
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1994
+ checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
1995
+ dependencies = [
1996
+ "byteorder",
1997
+ "zerocopy-derive",
1998
+ ]
1999
+
2000
+ [[package]]
2001
+ name = "zerocopy-derive"
2002
+ version = "0.7.35"
2003
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2004
+ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
2005
+ dependencies = [
2006
+ "proc-macro2",
2007
+ "quote",
2008
+ "syn",
2009
+ ]
2010
+
1959
2011
  [[package]]
1960
2012
  name = "zeroize"
1961
2013
  version = "1.8.1"
@@ -1,6 +1,7 @@
1
1
  [package]
2
2
  name = "eppo_client"
3
- version = "3.0.0"
3
+ # TODO: this version and lib/eppo_client/version.rb should be in sync
4
+ version = "3.1.1"
4
5
  edition = "2021"
5
6
  license = "MIT"
6
7
  publish = false
@@ -11,7 +12,7 @@ crate-type = ["cdylib"]
11
12
 
12
13
  [dependencies]
13
14
  env_logger = { version = "0.11.3", features = ["unstable-kv"] }
14
- eppo_core = { version = "1.0.0" }
15
+ eppo_core = { version = "3.0.0" }
15
16
  log = { version = "0.4.21", features = ["kv_serde"] }
16
17
  magnus = { version = "0.6.2" }
17
18
  serde = { version = "1.0.203", features = ["derive"] }
@@ -1,8 +1,12 @@
1
1
  use std::{cell::RefCell, sync::Arc};
2
2
 
3
3
  use eppo_core::{
4
- configuration_fetcher::ConfigurationFetcher, configuration_store::ConfigurationStore,
5
- poller_thread::PollerThread, ufc::VariationType, Attributes, ContextAttributes,
4
+ configuration_fetcher::{ConfigurationFetcher, ConfigurationFetcherConfig},
5
+ configuration_store::ConfigurationStore,
6
+ eval::{Evaluator, EvaluatorConfig},
7
+ poller_thread::PollerThread,
8
+ ufc::VariationType,
9
+ Attributes, ContextAttributes, SdkMetadata,
6
10
  };
7
11
  use magnus::{error::Result, exception, prelude::*, Error, TryConvert, Value};
8
12
 
@@ -24,7 +28,7 @@ impl TryConvert for Config {
24
28
 
25
29
  #[magnus::wrap(class = "EppoClient::Core::Client")]
26
30
  pub struct Client {
27
- configuration_store: Arc<ConfigurationStore>,
31
+ evaluator: Evaluator,
28
32
  // Magnus only allows sharing aliased references (&T) through the API, so we need to use RefCell
29
33
  // to get interior mutability.
30
34
  //
@@ -37,21 +41,28 @@ impl Client {
37
41
  pub fn new(config: Config) -> Client {
38
42
  let configuration_store = Arc::new(ConfigurationStore::new());
39
43
 
44
+ let sdk_metadata = SdkMetadata {
45
+ name: "ruby",
46
+ version: env!("CARGO_PKG_VERSION"),
47
+ };
48
+
40
49
  let poller_thread = PollerThread::start(
41
- ConfigurationFetcher::new(
42
- eppo_core::configuration_fetcher::ConfigurationFetcherConfig {
43
- base_url: config.base_url,
44
- api_key: config.api_key,
45
- sdk_name: "ruby".to_owned(),
46
- sdk_version: env!("CARGO_PKG_VERSION").to_owned(),
47
- },
48
- ),
50
+ ConfigurationFetcher::new(ConfigurationFetcherConfig {
51
+ base_url: config.base_url,
52
+ api_key: config.api_key,
53
+ sdk_metadata: sdk_metadata.clone(),
54
+ }),
49
55
  configuration_store.clone(),
50
56
  )
51
57
  .expect("should be able to start poller thread");
52
58
 
53
- Client {
59
+ let evaluator = Evaluator::new(EvaluatorConfig {
54
60
  configuration_store,
61
+ sdk_metadata,
62
+ });
63
+
64
+ Client {
65
+ evaluator,
55
66
  poller_thread: RefCell::new(Some(poller_thread)),
56
67
  }
57
68
  }
@@ -66,8 +77,8 @@ impl Client {
66
77
  let expected_type: VariationType = serde_magnus::deserialize(expected_type)?;
67
78
  let subject_attributes: Attributes = serde_magnus::deserialize(subject_attributes)?;
68
79
 
69
- let config = self.configuration_store.get_configuration();
70
- let result = config
80
+ let result = self
81
+ .evaluator
71
82
  .get_assignment(
72
83
  &flag_key,
73
84
  &subject_key,
@@ -80,6 +91,26 @@ impl Client {
80
91
  Ok(serde_magnus::serialize(&result).expect("assignment value should be serializable"))
81
92
  }
82
93
 
94
+ pub fn get_assignment_details(
95
+ &self,
96
+ flag_key: String,
97
+ subject_key: String,
98
+ subject_attributes: Value,
99
+ expected_type: Value,
100
+ ) -> Result<Value> {
101
+ let expected_type: VariationType = serde_magnus::deserialize(expected_type)?;
102
+ let subject_attributes: Attributes = serde_magnus::deserialize(subject_attributes)?;
103
+
104
+ let result = self.evaluator.get_assignment_details(
105
+ &flag_key,
106
+ &subject_key,
107
+ &subject_attributes,
108
+ Some(expected_type),
109
+ );
110
+
111
+ Ok(serde_magnus::serialize(&result).expect("assignment value should be serializable"))
112
+ }
113
+
83
114
  pub fn get_bandit_action(
84
115
  &self,
85
116
  flag_key: String,
@@ -99,8 +130,37 @@ impl Client {
99
130
  })?;
100
131
  let actions = serde_magnus::deserialize(actions)?;
101
132
 
102
- let config = self.configuration_store.get_configuration();
103
- let result = config.get_bandit_action(
133
+ let result = self.evaluator.get_bandit_action(
134
+ &flag_key,
135
+ &subject_key,
136
+ &subject_attributes,
137
+ &actions,
138
+ &default_variation,
139
+ );
140
+
141
+ serde_magnus::serialize(&result)
142
+ }
143
+
144
+ pub fn get_bandit_action_details(
145
+ &self,
146
+ flag_key: String,
147
+ subject_key: String,
148
+ subject_attributes: Value,
149
+ actions: Value,
150
+ default_variation: String,
151
+ ) -> Result<Value> {
152
+ let subject_attributes = serde_magnus::deserialize::<_, ContextAttributes>(
153
+ subject_attributes,
154
+ )
155
+ .map_err(|err| {
156
+ Error::new(
157
+ exception::runtime_error(),
158
+ format!("enexpected value for subject_attributes: {err}"),
159
+ )
160
+ })?;
161
+ let actions = serde_magnus::deserialize(actions)?;
162
+
163
+ let result = self.evaluator.get_bandit_action_details(
104
164
  &flag_key,
105
165
  &subject_key,
106
166
  &subject_attributes,
@@ -14,7 +14,15 @@ fn init(ruby: &Ruby) -> Result<(), Error> {
14
14
  let core_client = core.define_class("Client", magnus::class::object())?;
15
15
  core_client.define_singleton_method("new", function!(Client::new, 1))?;
16
16
  core_client.define_method("get_assignment", method!(Client::get_assignment, 4))?;
17
+ core_client.define_method(
18
+ "get_assignment_details",
19
+ method!(Client::get_assignment_details, 4),
20
+ )?;
17
21
  core_client.define_method("get_bandit_action", method!(Client::get_bandit_action, 5))?;
22
+ core_client.define_method(
23
+ "get_bandit_action_details",
24
+ method!(Client::get_bandit_action_details, 5),
25
+ )?;
18
26
  core_client.define_method("shutdown", method!(Client::shutdown, 0))?;
19
27
 
20
28
  core.const_set(
@@ -48,6 +48,26 @@ module EppoClient
48
48
  get_assignment_inner(flag_key, subject_key, subject_attributes, "JSON", default_value)
49
49
  end
50
50
 
51
+ def get_string_assignment_details(flag_key, subject_key, subject_attributes, default_value)
52
+ get_assignment_details_inner(flag_key, subject_key, subject_attributes, "STRING", default_value)
53
+ end
54
+
55
+ def get_numeric_assignment_details(flag_key, subject_key, subject_attributes, default_value)
56
+ get_assignment_details_inner(flag_key, subject_key, subject_attributes, "NUMERIC", default_value)
57
+ end
58
+
59
+ def get_integer_assignment_details(flag_key, subject_key, subject_attributes, default_value)
60
+ get_assignment_details_inner(flag_key, subject_key, subject_attributes, "INTEGER", default_value)
61
+ end
62
+
63
+ def get_boolean_assignment_details(flag_key, subject_key, subject_attributes, default_value)
64
+ get_assignment_details_inner(flag_key, subject_key, subject_attributes, "BOOLEAN", default_value)
65
+ end
66
+
67
+ def get_json_assignment_details(flag_key, subject_key, subject_attributes, default_value)
68
+ get_assignment_details_inner(flag_key, subject_key, subject_attributes, "JSON", default_value)
69
+ end
70
+
51
71
  def get_bandit_action(flag_key, subject_key, subject_attributes, actions, default_variation)
52
72
  attributes = coerce_context_attributes(subject_attributes)
53
73
  actions = actions.to_h { |action, attributes| [action, coerce_context_attributes(attributes)] }
@@ -56,7 +76,22 @@ module EppoClient
56
76
  log_assignment(result[:assignment_event])
57
77
  log_bandit_action(result[:bandit_event])
58
78
 
59
- return {:variation => result[:variation], :action=>result[:action]}
79
+ return {:variation => result[:variation], :action => result[:action]}
80
+ end
81
+
82
+ def get_bandit_action_details(flag_key, subject_key, subject_attributes, actions, default_variation)
83
+ attributes = coerce_context_attributes(subject_attributes)
84
+ actions = actions.to_h { |action, attributes| [action, coerce_context_attributes(attributes)] }
85
+ result, details = @core.get_bandit_action_details(flag_key, subject_key, attributes, actions, default_variation)
86
+
87
+ log_assignment(result[:assignment_event])
88
+ log_bandit_action(result[:bandit_event])
89
+
90
+ return {
91
+ :variation => result[:variation],
92
+ :action => result[:action],
93
+ :evaluationDetails => details
94
+ }
60
95
  end
61
96
 
62
97
  private
@@ -72,7 +107,7 @@ module EppoClient
72
107
 
73
108
  log_assignment(assignment[:event])
74
109
 
75
- return assignment[:value][expected_type]
110
+ return assignment[:value][:value]
76
111
  rescue StandardError => error
77
112
  logger.debug("[Eppo SDK] Failed to get assignment: #{error}")
78
113
 
@@ -82,6 +117,22 @@ module EppoClient
82
117
  end
83
118
  # rubocop:enable Metrics/MethodLength
84
119
 
120
+ # rubocop:disable Metrics/MethodLength
121
+ def get_assignment_details_inner(flag_key, subject_key, subject_attributes, expected_type, default_value)
122
+ result, event = @core.get_assignment_details(flag_key, subject_key, subject_attributes, expected_type)
123
+ log_assignment(event)
124
+
125
+ if not result[:variation] then
126
+ result[:variation] = default_value
127
+ else
128
+ # unwrap from AssignmentValue to untyped value
129
+ result[:variation] = result[:variation][:value]
130
+ end
131
+
132
+ return result
133
+ end
134
+ # rubocop:enable Metrics/MethodLength
135
+
85
136
  def log_assignment(event)
86
137
  if not event then return end
87
138
 
@@ -93,7 +144,6 @@ module EppoClient
93
144
  # events for both flag assignment and bandit actions.
94
145
  event = event.to_h { |key, value| [key.to_sym, value]}
95
146
 
96
- enrich_event_metadata(event)
97
147
  begin
98
148
  @assignment_logger.log_assignment(event)
99
149
  rescue EppoClient::AssignmentLoggerError
@@ -107,7 +157,6 @@ module EppoClient
107
157
  def log_bandit_action(event)
108
158
  if not event then return end
109
159
 
110
- enrich_event_metadata(event)
111
160
  begin
112
161
  @assignment_logger.log_bandit_action(event)
113
162
  rescue EppoClient::AssignmentLoggerError
@@ -118,11 +167,6 @@ module EppoClient
118
167
  end
119
168
  end
120
169
 
121
- def enrich_event_metadata(event)
122
- event[:metaData]["sdkName"] = "ruby"
123
- event[:metaData]["sdkVersion"] = EppoClient::VERSION
124
- end
125
-
126
170
  def coerce_context_attributes(attributes)
127
171
  numeric_attributes = attributes[:numeric_attributes] || attributes["numericAttributes"]
128
172
  categorical_attributes = attributes[:categorical_attributes] || attributes["categoricalAttributes"]
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # TODO: this version and ext/eppo_rb/Cargo.toml should be in sync
3
4
  module EppoClient
4
- VERSION = "3.0.0"
5
+ VERSION = "3.1.1"
5
6
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eppo-server-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eppo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-24 00:00:00.000000000 Z
11
+ date: 2024-09-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description:
13
+ description:
14
14
  email:
15
15
  - eppo-team@geteppo.com
16
16
  executables: []
@@ -49,7 +49,7 @@ metadata:
49
49
  homepage_uri: https://geteppo.com/
50
50
  source_code_uri: https://github.com/Eppo-exp/ruby-sdk
51
51
  wiki_uri: https://github.com/Eppo-exp/ruby-sdk/wiki
52
- post_install_message:
52
+ post_install_message:
53
53
  rdoc_options: []
54
54
  require_paths:
55
55
  - lib
@@ -64,8 +64,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  - !ruby/object:Gem::Version
65
65
  version: 3.3.11
66
66
  requirements: []
67
- rubygems_version: 3.5.9
68
- signing_key:
67
+ rubygems_version: 3.5.16
68
+ signing_key:
69
69
  specification_version: 4
70
70
  summary: Eppo SDK for Ruby
71
71
  test_files: []