Remove buggy and unused arcode

This commit is contained in:
widberg 2026-07-09 14:59:58 -04:00
parent f00730685b
commit d4d79900f3
5 changed files with 0 additions and 138 deletions

23
Cargo.lock generated
View file

@ -92,16 +92,6 @@ dependencies = [
"serde",
]
[[package]]
name = "arcode"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cf9ecf0f36fbecd0fd1be1eaa0b25fc67051d9a2f6b25892e6e6ebb7db629cb"
dependencies = [
"bitbit",
"fenwick",
]
[[package]]
name = "array-init"
version = "2.1.0"
@ -118,7 +108,6 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
name = "bff"
version = "1.1.0"
dependencies = [
"arcode",
"bff-derive",
"bilge",
"binrw",
@ -212,12 +201,6 @@ dependencies = [
"syn 2.0.98",
]
[[package]]
name = "bitbit"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "341ee439c53e593fa7de26dead9515601539b6cf9a53e3368c1405471e3ea322"
[[package]]
name = "bitflags"
version = "2.8.0"
@ -533,12 +516,6 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "fenwick"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ad8c7269456fd609f700340399dca5fa160c4785c9623f87b6079e5a479f28b"
[[package]]
name = "fixedbitset"
version = "0.5.7"

View file

@ -2,8 +2,6 @@ use std::fs::File;
use std::io::{self, BufWriter, Cursor, Read, Write};
use bff::lz::{
arcode_compress_data_with_header_writer,
arcode_decompress_data_with_header_parser,
gzip_compress_data_with_header_writer,
gzip_decompress_data_with_header_parser,
lz4_compress_data_with_header_writer,
@ -43,7 +41,6 @@ pub enum LzAlgorithm {
Lzrs,
Lzo,
Lz4,
Arcode,
Zlib,
Gzip,
}
@ -63,7 +60,6 @@ fn lz_internal<R: Read, W: Write>(
LzAlgorithm::Lzrs => lzrs_compress_data_with_header_writer(&buf, &mut writer, endian)?,
LzAlgorithm::Lzo => lzo_compress(&buf, &mut writer)?,
LzAlgorithm::Lz4 => lz4_compress_data_with_header_writer(&buf, &mut writer, endian)?,
LzAlgorithm::Arcode => arcode_compress_data_with_header_writer(&buf, &mut writer, endian)?,
LzAlgorithm::Zlib => zlib_compress_data_with_header_writer(&buf, &mut writer, endian)?,
LzAlgorithm::Gzip => gzip_compress_data_with_header_writer(&buf, &mut writer, endian)?,
}
@ -124,7 +120,6 @@ fn unlz_internal<R: Read, W: Write>(
lzo_decompress(&compressed, buffer_size)?
}
LzAlgorithm::Lz4 => lz4_decompress_data_with_header_parser(&mut reader, endian)?,
LzAlgorithm::Arcode => arcode_decompress_data_with_header_parser(&mut reader, endian)?,
LzAlgorithm::Zlib => zlib_decompress_data_with_header_parser(&mut reader, endian)?,
LzAlgorithm::Gzip => gzip_decompress_data_with_header_parser(&mut reader, endian)?,
};

View file

@ -9,7 +9,6 @@ rust-version.workspace = true
autotests = false
[dependencies]
arcode = "0.2.4"
bff-derive = { path = "../bff-derive" }
bilge = { git = "https://github.com/widberg/bilge.git", features = ["serde", "schemars"], branch = "paradiso" }
binrw = { git = "https://github.com/widberg/binrw.git", branch = "paradiso" }

View file

@ -1,107 +0,0 @@
use std::io::{Cursor, Read, Seek, SeekFrom, Write};
use arcode::bitbit::{BitReader, BitWriter, LSB};
use arcode::{ArithmeticDecoder, ArithmeticEncoder, EOFKind, Model};
use binrw::{BinRead as _, BinResult, BinWrite as _, Endian, args};
use crate::BffResult;
#[binrw::writer(writer)]
pub fn arcode_compress_data_writer(data: &[u8]) -> BinResult<()> {
let mut model = Model::builder().num_bits(8).eof(EOFKind::EndAddOne).build();
let mut compressed_writer = BitWriter::new(writer);
let mut encoder = ArithmeticEncoder::new(61);
for sym in data {
encoder.encode(*sym as u32, &model, &mut compressed_writer)?;
model.update_symbol(*sym as u32);
}
encoder.encode(model.eof(), &model, &mut compressed_writer)?;
encoder.finish_encode(&mut compressed_writer)?;
compressed_writer.pad_to_byte()?;
Ok(())
}
#[binrw::writer(writer)]
pub fn arcode_compress_data_with_header_writer_internal(data: &[u8]) -> BinResult<()> {
let begin = writer.stream_position()?;
writer.seek(SeekFrom::Current(8))?;
arcode_compress_data_writer(data, writer, Endian::Little, ())?;
let end = writer.stream_position()?;
writer.seek(SeekFrom::Start(begin))?;
(data.len() as u32).write_le(writer)?;
((end - begin) as u32).write_le(writer)?;
writer.seek(SeekFrom::Start(end))?;
Ok(())
}
pub fn arcode_compress_data_with_header_writer<W: Write + Seek>(
data: &[u8],
writer: &mut W,
endian: Endian,
) -> BffResult<()> {
Ok(arcode_compress_data_with_header_writer_internal(
data,
writer,
endian,
(),
)?)
}
#[binrw::parser(reader)]
pub fn arcode_decompress_data_parser(
decompressed_size: u32,
compressed_size: u32,
) -> BinResult<Vec<u8>> {
if compressed_size != 0 {
let mut model = Model::builder()
.num_symbols(256)
.eof(EOFKind::EndAddOne)
.build();
let mut input_reader = BitReader::<_, LSB>::new(reader);
let mut decoder = ArithmeticDecoder::new(61);
let mut decompressed_buffer_cursor =
Cursor::new(Vec::with_capacity(decompressed_size as usize));
while !decoder.finished() {
let sym = decoder.decode(&model, &mut input_reader)?;
model.update_symbol(sym);
u8::write(&(sym as u8), &mut decompressed_buffer_cursor)?;
}
Ok(decompressed_buffer_cursor.into_inner())
} else {
let decompressed_buffer =
Vec::<u8>::read_args(reader, args! { count: decompressed_size as usize })?;
Ok(decompressed_buffer)
}
}
#[binrw::parser(reader)]
pub fn arcode_decompress_data_with_header_parser_internal() -> BinResult<Vec<u8>> {
let decompressed_size = u32::read_le(reader)?;
let compressed_size = u32::read_le(reader)?;
arcode_decompress_data_parser(
reader,
Endian::Little,
(decompressed_size, compressed_size - 8),
)
}
pub fn arcode_decompress_data_with_header_parser<R: Read + Seek>(
reader: &mut R,
endian: Endian,
) -> BffResult<Vec<u8>> {
Ok(arcode_decompress_data_with_header_parser_internal(
reader,
endian,
(),
)?)
}

View file

@ -1,11 +1,9 @@
mod arcode;
mod gzip;
mod lz4;
mod lzo;
mod lzrs;
mod zlib;
pub use arcode::*;
pub use gzip::*;
pub use lz4::*;
pub use lzo::*;