Comments (6)
LZ-String, as its name implies, is supposed to work on strings as input and strings as output. I am sure there are plenty of stream compressors out there that work much better than LZ-Strnig to compress a stream.
What usage did you have in mind for this feature ?
from lz-string.
@pieroxy, I'm currently working on a custom analytics solution that has to support partially offline devices (browsers) and be cross-platform. I've used IndexedDB (with a shim for iOS) to store the metrics.
Since there is a lot of redundancy in the data on the device that has to be posted back to the backend once online, I used your library to compress the data (using compressToUTF16
stored into a Uint16Array
to be posted via xhr as binary data). Since the data is basically a huge JSON array, I was hoping to be able to nicely stream it to the LevelDB backend. Using something like on NodeJS :
var dbWriteStream = db.createWriteStream();
app.post('/collect', function(req, res) {
req.pipe(lzUncompress).pipe(JSONStream.parse('rows.*')).pipe(dbWriteStream);
});
from lz-string.
Well... I don't really have time to do this these days, but I'm always glad to accept pull requests.
On an unrelated note, if you store your stuff in a Uint16Array
, you probably don't need to worry about compressToUTF16
(which uses 15bits per char) and could achieve better encoding ratio by using compress
directly.
from lz-string.
I was using compressToUTF16
since I'm using this on the server side:
var string = buffer.toString('utf16le');
string = LZString.decompressFromUTF16(string);
Did not manage to get it work using raw binary
encoding.
Do you think I can still safely use compress
directly with this setup?
I'm still getting my head around streams, but I might have a try, not sure how your algorithm works but do you think it could be easily adapted to handle streams? Or would it require to rewrite the algo?
from lz-string.
Sorry to have waited that long... Did you get your issue resolved ?
from lz-string.
Well, it's been a while. If I don't hear from you I'll just close this issue.
from lz-string.
Related Issues (20)
- Confused about compatibility between browser and server versions HOT 3
- [QUESTION]: is the output of compressToUint8Array a valid .lz file? HOT 1
- For people looking to store large amounts of data on localStorage this library is quite nice:
- Newbie question: How would I go about downloading / uploading a file? HOT 2
- Does `compressToUint8Array()` output smaller than `compress()` ? HOT 1
- Quotes in the compressed string HOT 3
- Implement IRI Encoding HOT 1
- Bug: can not decompress for some compressed string HOT 4
- Crash with large strings when running on Hermes (React Native)
- Is there a way to allow custom dictionaries? HOT 9
- How to realize that only specified characters are allowed to appear in the compression result? HOT 1
- LZ-String port to current typescript HOT 9
- Tag for v1.5.0 HOT 2
- Version 2 TODO list HOT 15
- Feature request: compress to source-compatible character set HOT 1
- New port for a linux executable HOT 1
- Can utf-8 codes be avoided in the output? HOT 10
- `decompressFromBase64` can return `null` HOT 7
- Docs: JSPerf.com links are no longer valid
- Docs: A Complete Demo for various compression/decompression HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lz-string.