What is libqp?
The libqp npm package is a library for encoding and decoding quoted-printable data, which is a method used to encode binary data into a text format that can be safely transmitted over text-based protocols such as email.
What are libqp's main functionalities?
Encoding
This feature allows you to encode a string into quoted-printable format. The code sample demonstrates how to encode the string 'Hello, World!' using the libqp package.
const libqp = require('libqp');
const input = 'Hello, World!';
const encoded = libqp.encode(input);
console.log(encoded);
Decoding
This feature allows you to decode a quoted-printable encoded string back into its original form. The code sample demonstrates how to decode the string 'Hello=2C=20World=21' using the libqp package.
const libqp = require('libqp');
const encoded = 'Hello=2C=20World=21';
const decoded = libqp.decode(encoded);
console.log(decoded);
Other packages similar to libqp
quoted-printable
The quoted-printable package provides similar functionality for encoding and decoding quoted-printable data. It is a straightforward and easy-to-use library that offers similar performance and ease of use as libqp.
emailjs-utf7
The emailjs-utf7 package is another library that deals with encoding and decoding, but it focuses on UTF-7 encoding, which is used in email systems. While it does not directly handle quoted-printable encoding, it serves a similar purpose in the context of email data encoding.
libqp
Encode and decode quoted-printable strings according to RFC2045.
Usage
Install with npm
npm install libqp
Require in your script
const libqp = require('libqp');
Encode values
Encode Buffer objects or unicode strings with
libqp.encode(val) → String
Where
- val is a Buffer or an unicode string
Example
libqp.encode('jõgeva');
Wrap encoded values
Quoted-Printable encoded lines are limited to 76 characters but encode
method might return lines longer than the limit.
To enforce soft line breaks on lines longer than 76 (or any other length) characters, use wrap
libqp.wrap(str[, lineLength]) → String
Where
- str is a Quoted-Printable encoded string
- lineLength (defaults to 76) is the maximum allowed line length. Any longer line will be soft wrapped
Example
libqp.wrap('abc j=C3=B5geva', 10);
Transform Streams
libqp
makes it possible to encode and decode streams with libqp.Encoder
and libqp.Decoder
constructors.
Encoder Stream
Create new Encoder Stream with
const encoder = new libqp.Encoder([options])
Where
- options is the optional stream options object with an additional option
lineLength
if you want to use any other line length than the default 76 characters (or set to false
to turn the soft wrapping off completely)
Example
The following example script reads in a file, encodes it to Quoted-Printable and saves the output to a file.
var libqp = require('libqp');
var fs = require('fs');
var source = fs.createReadStream('source.txt');
var encoded = fs.createReadStream('encoded.txt');
var encoder = new libqp.Encoder();
source.pipe(encoder).pipe(encoded);
Decoder Stream
Create new Decoder Stream with
const decoder = new libqp.Decoder([options])
Where
- options is the optional stream options object
Example
The following example script reads in a file in Quoted-Printable encoding, decodes it and saves the output to a file.
const libqp = require('libqp');
const fs = require('fs');
let encoded = fs.createReadStream('encoded.txt');
let dest = fs.createReadStream('dest.txt');
let decoder = new libqp.Decoder();
encoded.pipe(decoder).pipe(dest);
License
MIT