in src/DotPulsar/Internal/Compression/Lz4Compression.cs [31:62]
public static bool TryLoading(out ICompressorFactory? compressorFactory, out IDecompressorFactory? decompressorFactory)
{
try
{
var assembly = Assembly.Load("K4os.Compression.LZ4");
var definedTypes = assembly.DefinedTypes.ToArray();
var lz4Codec = FindLZ4Codec(definedTypes);
var lz4Level = FindLZ4Level(definedTypes);
var methods = lz4Codec.GetMethods(BindingFlags.Public | BindingFlags.Static);
var decode = FindDecode(methods);
var encode = FindEncode(methods, lz4Level);
var maximumOutputSize = FindMaximumOutputSize(methods);
compressorFactory = new CompressorFactory(PulsarApi.CompressionType.Lz4, () => new Compressor(CreateCompressor(encode, maximumOutputSize)));
decompressorFactory = new DecompressorFactory(PulsarApi.CompressionType.Lz4, () => new Decompressor(CreateDecompressor(decode)));
return CompressionTester.TestCompression(compressorFactory, decompressorFactory);
}
catch
{
// Ignore
}
compressorFactory = null;
decompressorFactory = null;
return false;
}