Skip to content

Commit 018b863

Browse files
committed
revert re_log_encoding
1 parent 7c8fab6 commit 018b863

File tree

8 files changed

+36
-677
lines changed

8 files changed

+36
-677
lines changed

Cargo.lock

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -7165,9 +7165,6 @@ dependencies = [
71657165
"re_smart_channel",
71667166
"re_tracing",
71677167
"re_types",
7168-
"rmp-serde",
7169-
"serde",
7170-
"serde_bytes",
71717168
"similar-asserts",
71727169
"thiserror 1.0.65",
71737170
"tokio",
@@ -8613,28 +8610,6 @@ dependencies = [
86138610
"windows-sys 0.52.0",
86148611
]
86158612

8616-
[[package]]
8617-
name = "rmp"
8618-
version = "0.8.14"
8619-
source = "registry+https://github.com/rust-lang/crates.io-index"
8620-
checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4"
8621-
dependencies = [
8622-
"byteorder",
8623-
"num-traits",
8624-
"paste",
8625-
]
8626-
8627-
[[package]]
8628-
name = "rmp-serde"
8629-
version = "1.3.0"
8630-
source = "registry+https://github.com/rust-lang/crates.io-index"
8631-
checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"
8632-
dependencies = [
8633-
"byteorder",
8634-
"rmp",
8635-
"serde",
8636-
]
8637-
86388613
[[package]]
86398614
name = "ron"
86408615
version = "0.8.1"
@@ -9094,15 +9069,6 @@ dependencies = [
90949069
"wasm-bindgen",
90959070
]
90969071

9097-
[[package]]
9098-
name = "serde_bytes"
9099-
version = "0.11.15"
9100-
source = "registry+https://github.com/rust-lang/crates.io-index"
9101-
checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a"
9102-
dependencies = [
9103-
"serde",
9104-
]
9105-
91069072
[[package]]
91079073
name = "serde_derive"
91089074
version = "1.0.219"

crates/store/re_log_encoding/Cargo.toml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,12 @@ decoder = [
2727
"re_log_types/serde",
2828
"dep:bytes",
2929
"dep:lz4_flex",
30-
"dep:rmp-serde",
31-
"dep:serde",
32-
"dep:serde_bytes",
3330
"dep:tokio",
3431
"dep:tokio-stream",
3532
]
3633

3734
## Enable encoding of log messages to an .rrd file/stream.
38-
encoder = ["dep:rmp-serde", "dep:lz4_flex", "re_log_types/serde"]
35+
encoder = ["dep:lz4_flex", "re_log_types/serde"]
3936

4037
## Enable streaming of .rrd files from HTTP.
4138
stream_from_http = [
@@ -68,9 +65,6 @@ thiserror.workspace = true
6865
bytes = { workspace = true, optional = true }
6966
ehttp = { workspace = true, optional = true, features = ["streaming"] }
7067
lz4_flex = { workspace = true, optional = true }
71-
rmp-serde = { workspace = true, optional = true } # For loading legacy (pre 0.22) .rrd files
72-
serde = { workspace = true, optional = true } # For loading legacy (pre 0.22) .rrd files
73-
serde_bytes = { workspace = true, optional = true } # For loading legacy (pre 0.22) .rrd files
7468
tokio = { workspace = true, optional = true, features = ["io-util"] }
7569
tokio-stream = { workspace = true, optional = true }
7670
web-time = { workspace = true, optional = true }

crates/store/re_log_encoding/src/decoder/mod.rs

Lines changed: 13 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,15 @@ use std::io::Read as _;
1111
use re_build_info::CrateVersion;
1212
use re_log_types::LogMsg;
1313

14+
use crate::codec;
1415
use crate::codec::file::decoder;
1516
use crate::FileHeader;
16-
use crate::LegacyMessageHeader;
1717
use crate::OLD_RRD_HEADERS;
18-
use crate::{codec, legacy::LegacyLogMsg};
19-
use crate::{Compression, EncodingOptions, Serializer};
18+
use crate::{EncodingOptions, Serializer};
2019

2120
// ----------------------------------------------------------------------------
2221

23-
fn warn_on_version_mismatch(encoded_version: [u8; 4]) {
22+
fn warn_on_version_mismatch(encoded_version: [u8; 4]) -> Result<(), DecodeError> {
2423
// We used 0000 for all .rrd files up until 2023-02-27, post 0.2.0 release:
2524
let encoded_version = if encoded_version == [0, 0, 0, 0] {
2625
CrateVersion::new(0, 2, 0)
@@ -30,11 +29,16 @@ fn warn_on_version_mismatch(encoded_version: [u8; 4]) {
3029

3130
if encoded_version.major == 0 && encoded_version.minor < 23 {
3231
// We broke compatibility for 0.23 for (hopefully) the last time.
33-
re_log::warn_once!("Attempting to load .rrd file from {encoded_version}…");
32+
Err(DecodeError::IncompatibleRerunVersion {
33+
file: encoded_version,
34+
local: CrateVersion::LOCAL,
35+
})
3436
} else if encoded_version <= CrateVersion::LOCAL {
3537
// Loading old files should be fine, and if it is not, the chunk migration in re_sorbet should already log a warning.
38+
Ok(())
3639
} else {
3740
re_log::warn_once!("Found data stream with Rerun version {encoded_version} which is newer than the local Rerun version ({}). This file may contain data that is not compatible with this version of Rerun. Consider updating Rerun.", CrateVersion::LOCAL);
41+
Ok(())
3842
}
3943
}
4044

@@ -78,9 +82,6 @@ pub enum DecodeError {
7882
#[error("Arrow error: {0}")]
7983
Arrow(#[from] arrow::error::ArrowError),
8084

81-
#[error("MsgPack error: {0}")]
82-
MsgPack(#[from] rmp_serde::decode::Error),
83-
8485
#[error("Codec error: {0}")]
8586
Codec(#[from] codec::CodecError),
8687
}
@@ -139,10 +140,10 @@ pub fn options_from_bytes(bytes: &[u8]) -> Result<(CrateVersion, EncodingOptions
139140
return Err(DecodeError::NotAnRrd);
140141
}
141142

142-
warn_on_version_mismatch(version);
143+
warn_on_version_mismatch(version)?;
143144

144145
match options.serializer {
145-
Serializer::LegacyMsgPack | Serializer::Protobuf => {}
146+
Serializer::Protobuf => {}
146147
}
147148

148149
Ok((CrateVersion::from_bytes(version), options))
@@ -167,8 +168,6 @@ pub struct Decoder<R: std::io::Read> {
167168
version: CrateVersion,
168169
options: EncodingOptions,
169170
read: Reader<R>,
170-
uncompressed: Vec<u8>, // scratch space
171-
compressed: Vec<u8>, // scratch space
172171

173172
/// The size in bytes of the data that has been decoded up to now.
174173
size_bytes: u64,
@@ -197,8 +196,6 @@ impl<R: std::io::Read> Decoder<R> {
197196
version,
198197
options,
199198
read: Reader::Raw(read),
200-
uncompressed: vec![],
201-
compressed: vec![],
202199
size_bytes: FileHeader::SIZE as _,
203200
})
204201
}
@@ -208,8 +205,6 @@ impl<R: std::io::Read> Decoder<R> {
208205
version,
209206
options,
210207
read: Reader::Raw(read),
211-
uncompressed: vec![],
212-
compressed: vec![],
213208
size_bytes: FileHeader::SIZE as _,
214209
}
215210
}
@@ -242,8 +237,6 @@ impl<R: std::io::Read> Decoder<R> {
242237
version,
243238
options,
244239
read: Reader::Buffered(read),
245-
uncompressed: vec![],
246-
compressed: vec![],
247240
size_bytes: FileHeader::SIZE as _,
248241
})
249242
}
@@ -323,78 +316,6 @@ impl<R: std::io::Read> Iterator for Decoder<R> {
323316
_ => return Some(Err(err)),
324317
},
325318
},
326-
Serializer::LegacyMsgPack => {
327-
let header = match LegacyMessageHeader::decode(&mut self.read) {
328-
Ok(header) => header,
329-
Err(err) => match err {
330-
DecodeError::Read(e) if e.kind() == std::io::ErrorKind::UnexpectedEof => {
331-
return None;
332-
}
333-
other => return Some(Err(other)),
334-
},
335-
};
336-
self.size_bytes += LegacyMessageHeader::SIZE as u64;
337-
338-
match header {
339-
LegacyMessageHeader::Data {
340-
compressed_len,
341-
uncompressed_len,
342-
} => {
343-
let uncompressed_len = uncompressed_len as usize;
344-
let compressed_len = compressed_len as usize;
345-
346-
self.uncompressed
347-
.resize(self.uncompressed.len().max(uncompressed_len), 0);
348-
349-
match self.options.compression {
350-
Compression::Off => {
351-
re_tracing::profile_scope!("read uncompressed");
352-
if let Err(err) = self
353-
.read
354-
.read_exact(&mut self.uncompressed[..uncompressed_len])
355-
{
356-
return Some(Err(DecodeError::Read(err)));
357-
}
358-
self.size_bytes += uncompressed_len as u64;
359-
}
360-
361-
Compression::LZ4 => {
362-
self.compressed
363-
.resize(self.compressed.len().max(compressed_len), 0);
364-
365-
{
366-
re_tracing::profile_scope!("read compressed");
367-
if let Err(err) =
368-
self.read.read_exact(&mut self.compressed[..compressed_len])
369-
{
370-
return Some(Err(DecodeError::Read(err)));
371-
}
372-
}
373-
374-
re_tracing::profile_scope!("lz4");
375-
if let Err(err) = lz4_flex::block::decompress_into(
376-
&self.compressed[..compressed_len],
377-
&mut self.uncompressed[..uncompressed_len],
378-
) {
379-
return Some(Err(DecodeError::Lz4(err)));
380-
}
381-
382-
self.size_bytes += compressed_len as u64;
383-
}
384-
}
385-
386-
let data = &self.uncompressed[..uncompressed_len];
387-
{
388-
re_tracing::profile_scope!("MsgPack deser");
389-
match rmp_serde::from_slice::<LegacyLogMsg>(data) {
390-
Ok(legacy_msg) => Some(legacy_msg.migrate()),
391-
Err(err) => return Some(Err(err.into())),
392-
}
393-
}
394-
}
395-
LegacyMessageHeader::EndOfStream => None,
396-
}
397-
}
398319
};
399320

400321
let Some(mut msg) = msg else {
@@ -426,6 +347,8 @@ impl<R: std::io::Read> Iterator for Decoder<R> {
426347
mod tests {
427348
#![allow(clippy::unwrap_used)] // acceptable for tests
428349

350+
use crate::Compression;
351+
429352
use super::*;
430353
use re_build_info::CrateVersion;
431354
use re_chunk::RowId;

0 commit comments

Comments
 (0)