DragonFire Developer Portal

Merlin SDK

Related Resources

Merlin SDK Download

Download the DragonFire Merlin SDK to integrate powerful recursive harmonic compression capabilities into your applications, optimizing data size while preserving information integrity through mathematical patterns.

Beta Release

The Merlin SDK is currently in beta. Core functionality is stable, but APIs and performance characteristics may change before the final release. Please report any issues through the Developer Support portal.

Download Options

Merlin SDK - JavaScript

v1.3.2

High-performance JavaScript implementation for web and Node.js applications.

  • Browser and Node.js support
  • Streaming compression API
  • WebWorker integration
  • Optimized WASM binary for performance
  • TypeScript definitions included
Requirements: ES6+ compatible environment, WebAssembly support

Merlin SDK - C/C++

v1.3.2

Native C/C++ implementation for maximum performance in server and desktop applications.

  • Cross-platform support (Linux, macOS, Windows)
  • Hardware optimizations (AVX, AVX2, AVX-512)
  • Memory-mapped file compression
  • Parallel compression pipelines
  • Custom allocator support
Requirements: C++14 compatible compiler, CMake 3.12+

Merlin SDK - Python

v1.3.0

Python bindings for data science and server-side applications.

  • NumPy/Pandas integration
  • Optimized binary extension
  • Streaming API support
  • Jupyter notebook examples
  • Context manager interface
Requirements: Python 3.7+, NumPy (optional)

Installation

For detailed installation instructions, please see the Getting Started guide. Basic installation steps:

# Using npm
npm install @dragonfire/merlin-sdk

# Using yarn
yarn add @dragonfire/merlin-sdk

# Or include directly in HTML
<script src="https://cdn.dragonfire.ai/sdk/merlin/1.3.2/merlin-sdk.min.js"></script>
# Extract the SDK package
tar -xzf merlin-sdk-1.3.2.tar.gz
cd merlin-sdk-1.3.2

# Configure with CMake
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON

# Build and install
make
sudo make install
# Using pip
pip install dragonfire-merlin

# From downloaded package
pip install merlin-sdk-1.3.0.tar.gz

# With conda
conda install -c dragonfire merlin

Compression Modes

Merlin offers several compression modes optimized for different types of data and performance requirements:

Harmonic

The standard compression mode that balances compression ratio and performance, using mathematical pattern recognition to optimize storage.

  • Compression Ratio: 3x - 8x
  • Speed: Medium
  • Best For: General purpose data, JSON, text, mixed binary data

Recursive

Maximum compression using multi-pass recursive pattern analysis, ideal for archival purposes where decompression speed is less critical.

  • Compression Ratio: 5x - 15x
  • Speed: Slow
  • Best For: Archives, backups, data with high redundancy

Fast

Optimized for speed with modest compression ratios, suitable for real-time applications and streaming data.

  • Compression Ratio: 2x - 4x
  • Speed: Very fast
  • Best For: Real-time communication, IoT data streams, log files

Specific

Domain-specific compression optimized for particular data types using specialized pattern recognition algorithms.

  • Compression Ratio: 5x - 20x
  • Speed: Medium
  • Best For: Numeric arrays, time series, scientific data, images

System Requirements

JavaScript SDK

  • Browser Support: Chrome 60+, Firefox 53+, Safari 11+, Edge 16+
  • Node.js: 12.0.0 or higher
  • WebAssembly: Required for optimal performance
  • Memory: At least 4MB available memory (more for larger compression tasks)

C/C++ SDK

  • Operating Systems: Linux (Ubuntu 18.04+, CentOS 7+), macOS 10.13+, Windows 10+
  • Compiler: GCC 5+, Clang 5+, MSVC 2017+
  • Optional Dependencies: zlib 1.2.11+ (for interoperability), libomp (for parallel processing)
  • CPU: x86_64 with SSE4.1 support (AVX/AVX2/AVX-512 recommended for optimal performance)
  • Memory: At least 16MB RAM, scales based on input data size and compression level

Python SDK

  • Python: 3.7 or higher
  • Optional Packages: NumPy 1.16+ (for array compression), Pandas 1.0+ (for DataFrame support)
  • Operating Systems: Linux, macOS, Windows
  • Pre-built Wheels: Available for most common platforms (manylinux2014, macOS 10.13+, Windows)

Key Features

Core Compression Technology

  • Recursive Pattern Recognition: Multi-pass analysis to identify redundant patterns at various scales
  • Harmonic Encoding: Mathematically optimized encoding based on prime number relationships
  • Adaptive Context Modeling: Dynamically adjusts to data characteristics in real-time
  • Phi-Resonant Dictionary: Optimizes symbol tables using golden ratio patterns
  • Fractal Compression: Identifies self-similar structures across different scales

Developer Features

  • Streaming API: Process data incrementally without loading everything into memory
  • Memory Efficiency: Configurable memory limits with adaptive processing
  • Progress Monitoring: Real-time compression statistics and progress reporting
  • Format Compatibility: Import/export with standard formats (gzip, zstd, etc.)
  • Extensive Configuration: Fine-tune parameters for specific use cases

Performance Optimizations

  • Hardware Acceleration: SIMD optimizations (SSE4, AVX, AVX2, AVX-512)
  • Multi-threading: Parallel compression for multi-core systems
  • WebAssembly Optimization: High-performance binary for browser environments
  • Adaptive Memory Management: Efficient memory usage that scales with input size
  • Zero-copy Processing: Minimize data copying for streaming applications

Data Type Support

  • Specialized Array Compression: Optimized for numeric arrays and matrices
  • Time Series Compression: Special modes for temporal data patterns
  • Document Compression: Enhanced for JSON, XML, and text formats
  • Binary Format Support: Efficient compression for arbitrary binary data
  • Image Data Optimization: Special modes for image data compression

Licensing

Developer License

The Merlin SDK is available under the DragonFire Developer License, which allows for:

  • Non-commercial development and testing
  • Educational use
  • Personal projects

See the full license text for details.

Commercial License

For commercial applications, a commercial license is required. Commercial licenses include:

  • Permission to distribute in commercial applications
  • Priority support
  • Performance optimization consulting
  • Custom integration services

Contact licensing@dragonfire.ai for commercial licensing information.

Performance Benchmarks

Merlin compression performance compared to standard algorithms with various data types:

Merlin Compression Benchmarks
Algorithm JSON Data Numeric Arrays Text Content Binary Data
Merlin (Harmonic) 5.2x 7.8x 4.9x 3.4x
Merlin (Recursive) 7.1x 12.4x 6.3x 4.7x
gzip (level 9) 3.1x 2.5x 3.3x 2.1x
zstd (level 19) 3.7x 3.2x 3.9x 2.8x

Note: Compression ratios are highly dependent on data characteristics. For detailed performance analysis and methodology, see the complete benchmarks page.

Getting Started

After downloading the SDK, visit our Documentation for detailed information on installation, configuration, and basic usage.

Quick Example

// JavaScript Example
import { MerlinCompressor } from '@dragonfire/merlin-sdk';

// Create a compressor with harmonic mode
const compressor = new MerlinCompressor({
  mode: 'harmonic',
  compressionLevel: 7,
  dictionary: 'adaptive'
});

// Compress data
async function compressData(inputData) {
  // Initialize the compressor
  await compressor.initialize();
  
  // Compress the data
  const compressed = await compressor.compress(inputData);
  console.log(`Original size: ${inputData.length} bytes`);
  console.log(`Compressed size: ${compressed.length} bytes`);
  console.log(`Compression ratio: ${(inputData.length / compressed.length).toFixed(2)}x`);
  
  // Decompress the data to verify integrity
  const decompressed = await compressor.decompress(compressed);
  console.log(`Decompression successful: ${inputData.length === decompressed.length}`);
  
  return compressed;
}

// Stream processing example
async function compressStream(readableStream, writableStream) {
  const streamCompressor = compressor.createStreamCompressor();
  
  // Pipe the streams
  readableStream
    .pipe(streamCompressor)
    .pipe(writableStream);
  
  // Monitor progress
  streamCompressor.on('progress', (stats) => {
    console.log(`Processed: ${stats.inputBytes} bytes, Compression ratio: ${stats.ratio.toFixed(2)}x`);
  });
  
  return new Promise((resolve, reject) => {
    writableStream.on('finish', resolve);
    writableStream.on('error', reject);
  });
}