Skip to content

Commit 34e30bb

Browse files
ADD: Adding SIP Dataset, Venues and Publishers
1 parent 9ae7c48 commit 34e30bb

2 files changed

Lines changed: 214 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
the `EncodeRecordRef` and `AsyncEncodeRecordRef` traits. The DBN encoder uses vectored
88
I/O to append the `ts_out` timestamp without copying the record body, while
99
CSV and JSON encoders serialize from a cloned struct as usual
10+
- Added new venues, datasets, and publishers for US Equities Securities Information Processors
1011

1112
## 0.58.0 - 2026-05-12
1213

rust/dbn/src/publishers.rs

Lines changed: 213 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,20 @@ pub enum Venue {
125125
Iexo = 55,
126126
/// Cboe Global Indices Feed
127127
Cgif = 56,
128+
/// Texas Stock Exchange, LLC
129+
Txse = 57,
130+
/// 24X National Exchange, LLC
131+
_24Eq = 58,
132+
/// Consolidated Tape Association
133+
Cta = 59,
134+
/// Unlisted Trading Privileges
135+
Utp = 60,
136+
/// FINRA Alternative Display Facility
137+
Xadf = 61,
128138
}
129139

130140
/// The number of [`Venue`] variants.
131-
pub const VENUE_COUNT: usize = 56;
141+
pub const VENUE_COUNT: usize = 61;
132142

133143
impl Venue {
134144
/// Converts the venue to its `str` representation.
@@ -190,6 +200,11 @@ impl Venue {
190200
Self::Mxto => "MXTO",
191201
Self::Iexo => "IEXO",
192202
Self::Cgif => "CGIF",
203+
Self::Txse => "TXSE",
204+
Self::_24Eq => "24EQ",
205+
Self::Cta => "CTA",
206+
Self::Utp => "UTP",
207+
Self::Xadf => "XADF",
193208
}
194209
}
195210
}
@@ -267,6 +282,11 @@ impl std::str::FromStr for Venue {
267282
"MXTO" => Ok(Self::Mxto),
268283
"IEXO" => Ok(Self::Iexo),
269284
"CGIF" => Ok(Self::Cgif),
285+
"TXSE" => Ok(Self::Txse),
286+
"24EQ" => Ok(Self::_24Eq),
287+
"CTA" => Ok(Self::Cta),
288+
"UTP" => Ok(Self::Utp),
289+
"XADF" => Ok(Self::Xadf),
270290
_ => Err(Error::conversion::<Self>(s)),
271291
}
272292
}
@@ -365,10 +385,12 @@ pub enum Dataset {
365385
OceaMemoir = 41,
366386
/// Cboe Titanium Cboe Global Indices Feed
367387
CgifTitanium = 42,
388+
/// US Equities Security Information Processor
389+
EqusSip = 43,
368390
}
369391

370392
/// The number of [`Dataset`] variants.
371-
pub const DATASET_COUNT: usize = 42;
393+
pub const DATASET_COUNT: usize = 43;
372394

373395
impl Dataset {
374396
/// Converts the dataset to its `str` representation.
@@ -418,6 +440,7 @@ impl Dataset {
418440
Self::XcbfPitch => "XCBF.PITCH",
419441
Self::OceaMemoir => "OCEA.MEMOIR",
420442
Self::CgifTitanium => "CGIF.TITANIUM",
443+
Self::EqusSip => "EQUS.SIP",
421444
}
422445
}
423446

@@ -545,6 +568,31 @@ impl Dataset {
545568
Self::XcbfPitch => &[Publisher::XcbfPitchXcbf, Publisher::XcbfPitchXoff],
546569
Self::OceaMemoir => &[Publisher::OceaMemoirOcea],
547570
Self::CgifTitanium => &[Publisher::CgifTitaniumCgif],
571+
Self::EqusSip => &[
572+
Publisher::EqusSipXase,
573+
Publisher::EqusSipXbos,
574+
Publisher::EqusSipXcis,
575+
Publisher::EqusSipTxse,
576+
Publisher::EqusSip24Eq,
577+
Publisher::EqusSipEprl,
578+
Publisher::EqusSipXisx,
579+
Publisher::EqusSipEdga,
580+
Publisher::EqusSipEdgx,
581+
Publisher::EqusSipLtse,
582+
Publisher::EqusSipXchi,
583+
Publisher::EqusSipXnys,
584+
Publisher::EqusSipArcx,
585+
Publisher::EqusSipXnas,
586+
Publisher::EqusSipMemx,
587+
Publisher::EqusSipIexg,
588+
Publisher::EqusSipXpsx,
589+
Publisher::EqusSipBaty,
590+
Publisher::EqusSipBats,
591+
Publisher::EqusSipFinn,
592+
Publisher::EqusSipFiny,
593+
Publisher::EqusSipFinc,
594+
Publisher::EqusSipXadf,
595+
],
548596
}
549597
}
550598
}
@@ -610,6 +658,7 @@ impl std::str::FromStr for Dataset {
610658
"XCBF.PITCH" => Ok(Self::XcbfPitch),
611659
"OCEA.MEMOIR" => Ok(Self::OceaMemoir),
612660
"CGIF.TITANIUM" => Ok(Self::CgifTitanium),
661+
"EQUS.SIP" => Ok(Self::EqusSip),
613662
_ => Err(Error::conversion::<Self>(s)),
614663
}
615664
}
@@ -842,10 +891,56 @@ pub enum Publisher {
842891
OpraPillarIexo = 109,
843892
/// Cboe Global Indices Feed
844893
CgifTitaniumCgif = 110,
894+
/// US Equities SIP - NYSE American
895+
EqusSipXase = 111,
896+
/// US Equities SIP - Nasdaq Texas
897+
EqusSipXbos = 112,
898+
/// US Equities SIP - NYSE National
899+
EqusSipXcis = 113,
900+
/// US Equities SIP - Texas Stock Exchange
901+
EqusSipTxse = 114,
902+
/// US Equities SIP - 24X National Exchange
903+
EqusSip24Eq = 115,
904+
/// US Equities SIP - MIAX Pearl
905+
EqusSipEprl = 116,
906+
/// US Equities SIP - Nasdaq ISE
907+
EqusSipXisx = 117,
908+
/// US Equities SIP - Cboe EDGA
909+
EqusSipEdga = 118,
910+
/// US Equities SIP - Cboe EDGX
911+
EqusSipEdgx = 119,
912+
/// US Equities SIP - Long-Term Stock Exchange
913+
EqusSipLtse = 120,
914+
/// US Equities SIP - NYSE Texas
915+
EqusSipXchi = 121,
916+
/// US Equities SIP - NYSE
917+
EqusSipXnys = 122,
918+
/// US Equities SIP - NYSE Arca
919+
EqusSipArcx = 123,
920+
/// US Equities SIP - Nasdaq
921+
EqusSipXnas = 124,
922+
/// US Equities SIP - MEMX
923+
EqusSipMemx = 125,
924+
/// US Equities SIP - IEX
925+
EqusSipIexg = 126,
926+
/// US Equities SIP - Nasdaq PSX
927+
EqusSipXpsx = 127,
928+
/// US Equities SIP - Cboe BYX
929+
EqusSipBaty = 128,
930+
/// US Equities SIP - Cboe BZX
931+
EqusSipBats = 129,
932+
/// US Equities SIP - FINRA/Nasdaq TRF Carteret
933+
EqusSipFinn = 130,
934+
/// US Equities SIP - FINRA/NYSE TRF
935+
EqusSipFiny = 131,
936+
/// US Equities SIP - FINRA/Nasdaq TRF Chicago
937+
EqusSipFinc = 132,
938+
/// US Equities SIP - FINRA Alternative Display Facility
939+
EqusSipXadf = 133,
845940
}
846941

847942
/// The number of [`Publisher`] variants.
848-
pub const PUBLISHER_COUNT: usize = 110;
943+
pub const PUBLISHER_COUNT: usize = 133;
849944

850945
impl Publisher {
851946
/// Converts the publisher to its `str` representation.
@@ -961,6 +1056,29 @@ impl Publisher {
9611056
Self::OpraPillarMxto => "OPRA.PILLAR.MXTO",
9621057
Self::OpraPillarIexo => "OPRA.PILLAR.IEXO",
9631058
Self::CgifTitaniumCgif => "CGIF.TITANIUM.CGIF",
1059+
Self::EqusSipXase => "EQUS.SIP.XASE",
1060+
Self::EqusSipXbos => "EQUS.SIP.XBOS",
1061+
Self::EqusSipXcis => "EQUS.SIP.XCIS",
1062+
Self::EqusSipTxse => "EQUS.SIP.TXSE",
1063+
Self::EqusSip24Eq => "EQUS.SIP.24EQ",
1064+
Self::EqusSipEprl => "EQUS.SIP.EPRL",
1065+
Self::EqusSipXisx => "EQUS.SIP.XISX",
1066+
Self::EqusSipEdga => "EQUS.SIP.EDGA",
1067+
Self::EqusSipEdgx => "EQUS.SIP.EDGX",
1068+
Self::EqusSipLtse => "EQUS.SIP.LTSE",
1069+
Self::EqusSipXchi => "EQUS.SIP.XCHI",
1070+
Self::EqusSipXnys => "EQUS.SIP.XNYS",
1071+
Self::EqusSipArcx => "EQUS.SIP.ARCX",
1072+
Self::EqusSipXnas => "EQUS.SIP.XNAS",
1073+
Self::EqusSipMemx => "EQUS.SIP.MEMX",
1074+
Self::EqusSipIexg => "EQUS.SIP.IEXG",
1075+
Self::EqusSipXpsx => "EQUS.SIP.XPSX",
1076+
Self::EqusSipBaty => "EQUS.SIP.BATY",
1077+
Self::EqusSipBats => "EQUS.SIP.BATS",
1078+
Self::EqusSipFinn => "EQUS.SIP.FINN",
1079+
Self::EqusSipFiny => "EQUS.SIP.FINY",
1080+
Self::EqusSipFinc => "EQUS.SIP.FINC",
1081+
Self::EqusSipXadf => "EQUS.SIP.XADF",
9641082
}
9651083
}
9661084

@@ -1077,6 +1195,29 @@ impl Publisher {
10771195
Self::OpraPillarMxto => Venue::Mxto,
10781196
Self::OpraPillarIexo => Venue::Iexo,
10791197
Self::CgifTitaniumCgif => Venue::Cgif,
1198+
Self::EqusSipXase => Venue::Xase,
1199+
Self::EqusSipXbos => Venue::Xbos,
1200+
Self::EqusSipXcis => Venue::Xcis,
1201+
Self::EqusSipTxse => Venue::Txse,
1202+
Self::EqusSip24Eq => Venue::_24Eq,
1203+
Self::EqusSipEprl => Venue::Eprl,
1204+
Self::EqusSipXisx => Venue::Xisx,
1205+
Self::EqusSipEdga => Venue::Edga,
1206+
Self::EqusSipEdgx => Venue::Edgx,
1207+
Self::EqusSipLtse => Venue::Ltse,
1208+
Self::EqusSipXchi => Venue::Xchi,
1209+
Self::EqusSipXnys => Venue::Xnys,
1210+
Self::EqusSipArcx => Venue::Arcx,
1211+
Self::EqusSipXnas => Venue::Xnas,
1212+
Self::EqusSipMemx => Venue::Memx,
1213+
Self::EqusSipIexg => Venue::Iexg,
1214+
Self::EqusSipXpsx => Venue::Xpsx,
1215+
Self::EqusSipBaty => Venue::Baty,
1216+
Self::EqusSipBats => Venue::Bats,
1217+
Self::EqusSipFinn => Venue::Finn,
1218+
Self::EqusSipFiny => Venue::Finy,
1219+
Self::EqusSipFinc => Venue::Finc,
1220+
Self::EqusSipXadf => Venue::Xadf,
10801221
}
10811222
}
10821223

@@ -1193,6 +1334,29 @@ impl Publisher {
11931334
Self::OpraPillarMxto => Dataset::OpraPillar,
11941335
Self::OpraPillarIexo => Dataset::OpraPillar,
11951336
Self::CgifTitaniumCgif => Dataset::CgifTitanium,
1337+
Self::EqusSipXase => Dataset::EqusSip,
1338+
Self::EqusSipXbos => Dataset::EqusSip,
1339+
Self::EqusSipXcis => Dataset::EqusSip,
1340+
Self::EqusSipTxse => Dataset::EqusSip,
1341+
Self::EqusSip24Eq => Dataset::EqusSip,
1342+
Self::EqusSipEprl => Dataset::EqusSip,
1343+
Self::EqusSipXisx => Dataset::EqusSip,
1344+
Self::EqusSipEdga => Dataset::EqusSip,
1345+
Self::EqusSipEdgx => Dataset::EqusSip,
1346+
Self::EqusSipLtse => Dataset::EqusSip,
1347+
Self::EqusSipXchi => Dataset::EqusSip,
1348+
Self::EqusSipXnys => Dataset::EqusSip,
1349+
Self::EqusSipArcx => Dataset::EqusSip,
1350+
Self::EqusSipXnas => Dataset::EqusSip,
1351+
Self::EqusSipMemx => Dataset::EqusSip,
1352+
Self::EqusSipIexg => Dataset::EqusSip,
1353+
Self::EqusSipXpsx => Dataset::EqusSip,
1354+
Self::EqusSipBaty => Dataset::EqusSip,
1355+
Self::EqusSipBats => Dataset::EqusSip,
1356+
Self::EqusSipFinn => Dataset::EqusSip,
1357+
Self::EqusSipFiny => Dataset::EqusSip,
1358+
Self::EqusSipFinc => Dataset::EqusSip,
1359+
Self::EqusSipXadf => Dataset::EqusSip,
11961360
}
11971361
}
11981362

@@ -1312,6 +1476,29 @@ impl Publisher {
13121476
(Dataset::OpraPillar, Venue::Mxto) => Ok(Self::OpraPillarMxto),
13131477
(Dataset::OpraPillar, Venue::Iexo) => Ok(Self::OpraPillarIexo),
13141478
(Dataset::CgifTitanium, Venue::Cgif) => Ok(Self::CgifTitaniumCgif),
1479+
(Dataset::EqusSip, Venue::Xase) => Ok(Self::EqusSipXase),
1480+
(Dataset::EqusSip, Venue::Xbos) => Ok(Self::EqusSipXbos),
1481+
(Dataset::EqusSip, Venue::Xcis) => Ok(Self::EqusSipXcis),
1482+
(Dataset::EqusSip, Venue::Txse) => Ok(Self::EqusSipTxse),
1483+
(Dataset::EqusSip, Venue::_24Eq) => Ok(Self::EqusSip24Eq),
1484+
(Dataset::EqusSip, Venue::Eprl) => Ok(Self::EqusSipEprl),
1485+
(Dataset::EqusSip, Venue::Xisx) => Ok(Self::EqusSipXisx),
1486+
(Dataset::EqusSip, Venue::Edga) => Ok(Self::EqusSipEdga),
1487+
(Dataset::EqusSip, Venue::Edgx) => Ok(Self::EqusSipEdgx),
1488+
(Dataset::EqusSip, Venue::Ltse) => Ok(Self::EqusSipLtse),
1489+
(Dataset::EqusSip, Venue::Xchi) => Ok(Self::EqusSipXchi),
1490+
(Dataset::EqusSip, Venue::Xnys) => Ok(Self::EqusSipXnys),
1491+
(Dataset::EqusSip, Venue::Arcx) => Ok(Self::EqusSipArcx),
1492+
(Dataset::EqusSip, Venue::Xnas) => Ok(Self::EqusSipXnas),
1493+
(Dataset::EqusSip, Venue::Memx) => Ok(Self::EqusSipMemx),
1494+
(Dataset::EqusSip, Venue::Iexg) => Ok(Self::EqusSipIexg),
1495+
(Dataset::EqusSip, Venue::Xpsx) => Ok(Self::EqusSipXpsx),
1496+
(Dataset::EqusSip, Venue::Baty) => Ok(Self::EqusSipBaty),
1497+
(Dataset::EqusSip, Venue::Bats) => Ok(Self::EqusSipBats),
1498+
(Dataset::EqusSip, Venue::Finn) => Ok(Self::EqusSipFinn),
1499+
(Dataset::EqusSip, Venue::Finy) => Ok(Self::EqusSipFiny),
1500+
(Dataset::EqusSip, Venue::Finc) => Ok(Self::EqusSipFinc),
1501+
(Dataset::EqusSip, Venue::Xadf) => Ok(Self::EqusSipXadf),
13151502
_ => Err(Error::conversion::<Self>(format!("({dataset}, {venue})"))),
13161503
}
13171504
}
@@ -1444,6 +1631,29 @@ impl std::str::FromStr for Publisher {
14441631
"OPRA.PILLAR.MXTO" => Ok(Self::OpraPillarMxto),
14451632
"OPRA.PILLAR.IEXO" => Ok(Self::OpraPillarIexo),
14461633
"CGIF.TITANIUM.CGIF" => Ok(Self::CgifTitaniumCgif),
1634+
"EQUS.SIP.XASE" => Ok(Self::EqusSipXase),
1635+
"EQUS.SIP.XBOS" => Ok(Self::EqusSipXbos),
1636+
"EQUS.SIP.XCIS" => Ok(Self::EqusSipXcis),
1637+
"EQUS.SIP.TXSE" => Ok(Self::EqusSipTxse),
1638+
"EQUS.SIP.24EQ" => Ok(Self::EqusSip24Eq),
1639+
"EQUS.SIP.EPRL" => Ok(Self::EqusSipEprl),
1640+
"EQUS.SIP.XISX" => Ok(Self::EqusSipXisx),
1641+
"EQUS.SIP.EDGA" => Ok(Self::EqusSipEdga),
1642+
"EQUS.SIP.EDGX" => Ok(Self::EqusSipEdgx),
1643+
"EQUS.SIP.LTSE" => Ok(Self::EqusSipLtse),
1644+
"EQUS.SIP.XCHI" => Ok(Self::EqusSipXchi),
1645+
"EQUS.SIP.XNYS" => Ok(Self::EqusSipXnys),
1646+
"EQUS.SIP.ARCX" => Ok(Self::EqusSipArcx),
1647+
"EQUS.SIP.XNAS" => Ok(Self::EqusSipXnas),
1648+
"EQUS.SIP.MEMX" => Ok(Self::EqusSipMemx),
1649+
"EQUS.SIP.IEXG" => Ok(Self::EqusSipIexg),
1650+
"EQUS.SIP.XPSX" => Ok(Self::EqusSipXpsx),
1651+
"EQUS.SIP.BATY" => Ok(Self::EqusSipBaty),
1652+
"EQUS.SIP.BATS" => Ok(Self::EqusSipBats),
1653+
"EQUS.SIP.FINN" => Ok(Self::EqusSipFinn),
1654+
"EQUS.SIP.FINY" => Ok(Self::EqusSipFiny),
1655+
"EQUS.SIP.FINC" => Ok(Self::EqusSipFinc),
1656+
"EQUS.SIP.XADF" => Ok(Self::EqusSipXadf),
14471657
_ => Err(Error::conversion::<Self>(s)),
14481658
}
14491659
}

0 commit comments

Comments
 (0)