code: function zip(data, options) {
  		var flags = 0,
  			level,
  			crc, out = [];
  
  		if (!options) {
  			options = {};
  		}
  		level = options.level || DEFAULT_LEVEL;
  
  		if (typeof data === 'string') {
  			data = Array.prototype.map.call(data, function (char) {
  				return char.charCodeAt(0);
  			});
  		}
  
  		// magic number marking this file as GZIP
  		putByte(ID1, out);
  		putByte(ID2, out);
  
  		putByte(compressionMethods['deflate'], out);
  
  		if (options.name) {
  			flags |= possibleFlags['FNAME'];
  		}
  
  		putByte(flags, out);
  		putLong(options.timestamp || parseInt(Date.now() / 1000, 10), out);
  
  		// put deflate args (extra flags)
  		if (level === 1) {
  			// fastest algorithm
  			putByte(4, out);
  		} else if (level === 9) {
  			// maximum compression (fastest algorithm)
  			putByte(2, out);
  		} else {
  			putByte(0, out);
  		}
  
  		// OS identifier
  		putByte(osMap[os], out);
  
  		if (options.name) {
  			// ignore the directory part
  			putString(options.name.substring(options.name.lastIndexOf('/') + 1), out);
  
  			// terminating null
  			putByte(0, out);
  		}
  
  		deflate.deflate(data, level).forEach(function (byte) {
  			putByte(byte, out);
  		});
  
  		putLong(parseInt(crc32(data), 16), out);
  		putLong(data.length, out);
  
  		return out;
  	}
docs: /*
  ZIPs a file in GZIP format. The format is as given by the spec, found at:
  http://www.gzip.org/zlib/rfc-gzip.html
  
  Omitted parts in this implementation: