https://github.com/indiesoftby/defold-zstd
Zstandard compression API for the Defold engine.
https://github.com/indiesoftby/defold-zstd
defold defold-extension defold-library defold-native-extension zstd
Last synced: 21 days ago
JSON representation
Zstandard compression API for the Defold engine.
- Host: GitHub
- URL: https://github.com/indiesoftby/defold-zstd
- Owner: indiesoftby
- License: other
- Created: 2024-09-17T22:45:54.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-05-04T14:08:33.000Z (30 days ago)
- Last Synced: 2025-05-04T14:31:25.778Z (30 days ago)
- Topics: defold, defold-extension, defold-library, defold-native-extension, zstd
- Language: C
- Homepage:
- Size: 499 KB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-defold - Zstandard Compression
README
[](https://github.com/indiesoftby/defold-zstd)
# Zstandard Compression for Defold
This is a native extension for [the Defold game engine](https://defold.com/) that allows you to use Zstandard to compress and decompress strings in your Lua code. The included version of Zstd is 1.5.7.
> [Zstandard](https://github.com/facebook/zstd), or `zstd` as short version, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios.
Currently, the extension has simple API with two functions: `compress` and `decompress`. It doesn't support streaming, dictionaries and other features of the Zstd library. If you need more features, you can fill an issue on GitHub or even better - submit a PR.
## Usage
First add this extension as a dependency to your `game.project`:
https://github.com/indiesoftby/defold-zstd/archive/main.zip
It makes available global Lua functions `zstd.*`. Then you can use the extension in your Lua code:
```lua
local compression_level = 3 -- default is 3, maximum and the slowest compression level is 22
local compressed = zstd.compress("Hello, world!", compression_level)
local decompressed = zstd.decompress(compressed)print(decompressed)
```## API
### `zstd.version()`
Returns the version of the Zstandard library.**Returns:**
- `string`: The version.### `zstd.compress(data, level)`
Compresses a string.**Parameters:**
- `data` (string): The data to compress.
- `level` (number, optional): Optional compression level (default is 3, maximum is 22)**Returns:**
- `string`: The compressed data### `zstd.decompress(data)`
Decompresses a string.**Parameters:**
- `data` (string): The data to decompress.**Returns:**
- `string`: The decompressed data.## License
This project is licensed under the BSD 3-Clause License. See the LICENSE and LICENSE.zstd files for details.