Package Exports
- @droply/plugins/bundler/archive/tar
- @droply/plugins/bundler/archive/zip
- @droply/plugins/bundler/compression/brotli
- @droply/plugins/bundler/compression/gzip
- @droply/plugins/bundler/compression/zip
- @droply/plugins/nodejs/archive/tar
- @droply/plugins/nodejs/archive/zip
- @droply/plugins/nodejs/compression/brotli
- @droply/plugins/nodejs/compression/gzip
- @droply/plugins/nodejs/compression/zip
- @droply/plugins/web/archive/tar
- @droply/plugins/web/archive/zip
- @droply/plugins/web/compression/brotli
- @droply/plugins/web/compression/gzip
- @droply/plugins/web/compression/zip
Readme
@droply/plugins
High-performance WASM compression and archive plugins for Node.js and browsers.
🚀 Installation
npm install @droply/plugins📦 What's Included
This package contains pre-compiled WebAssembly modules for:
Compression Algorithms
- Gzip - Fast compression with good ratio
- Brotli - High compression ratio, slower but better compression
- ZIP - Archive format with compression
Archive Formats
- TAR - Tape archive format
- ZIP - Archive format with compression
🔧 Usage
Browser/Next.js (ESM)
import init, { compress, decompress } from '@droply/plugins/compression/gzip';
// Initialize the WASM module
await init();
// Compress data
const input = new TextEncoder().encode('Hello, World!');
const compressed = compress(input, 6); // level 6 compression
// Decompress data
const decompressed = decompress(compressed);
const text = new TextDecoder().decode(decompressed);Node.js (CommonJS)
import init, { compress, decompress } from '@droply/plugins/compression/gzip';
// Initialize the WASM module
await init();
// Compress Buffer
const input = Buffer.from('Hello, World!');
const compressed = compress(input, 6);
// Decompress Buffer
const decompressed = decompress(compressed);📚 Available Plugins
Compression Plugins
| Plugin | Browser Path | Node.js Path | Description | 
|---|---|---|---|
| Gzip | @droply/plugins/compression/gzip | @droply/plugins/compression/gzip | Fast compression with good ratio | 
| Brotli | @droply/plugins/compression/brotli | @droply/plugins/compression/brotli | High compression ratio | 
| ZIP | @droply/plugins/compression/zip | @droply/plugins/compression/zip | ZIP compression algorithm | 
Archive Plugins
| Plugin | Browser Path | Node.js Path | Description | 
|---|---|---|---|
| TAR | @droply/plugins/archive/tar | @droply/plugins/archive/tar | TAR archive format | 
| ZIP | @droply/plugins/archive/zip | @droply/plugins/archive/zip | ZIP archive format | 
🔄 Conditional Exports
The package automatically provides the right version for your environment:
- Browser/ESM: Uses ./build/directory (bundler target)
- Node.js: Uses ./build-node/directory (node target)
📁 Package Structure
@droply/plugins/
├── build/           # Browser/ESM builds
│   ├── compression/
│   │   ├── gzip/
│   │   ├── brotli/
│   │   └── zip/
│   └── archive/
│       ├── tar/
│       └── zip/
├── build-node/      # Node.js builds
│   ├── compression/
│   │   ├── gzip/
│   │   ├── brotli/
│   │   └── zip/
│   └── archive/
│       ├── tar/
│       └── zip/
└── registry.json    # Plugin metadata⚡ Performance
- WASM-powered: Near-native performance
- Zero-copy: Efficient memory usage
- Optimized: Built with Rust and optimized with wasm-opt
🔒 Security
- Sandboxed: WASM runs in isolated environment
- Memory-safe: Rust guarantees prevent common vulnerabilities
- Audited: Open source with community review
📋 Requirements
- Node.js: >= 18.0.0
- Browsers: Modern browsers with WASM support
- Runtime: ESM support required
🤝 Contributing
- Fork the repository
- Create a feature branch
- Add your plugin to crates/
- Run bash build.shto build
- Submit a pull request
📄 License
MIT License - see LICENSE file for details.
🔗 Related Packages
- @droply/sdk - TypeScript SDK for compression operations
- @droply/cli - Command-line interface
- Main Repository - Source code and documentation