Compress .cube to .cubexs and decompress .cubexs to .cube files (Python + TypeScript)
npm install @sidereus/cube-compressA small Python module for compressing and decompressing .cube files. This repo also includes a frontend TypeScript version with the same format.
``bash`
npm install @sidereus/cube-compress
(前端用到的 fflate 会随包自动安装。)
`python
from cube_compress import compress, decompress
compress("input.cube", "output.cubexs")
decompress("output.cubexs", "output.cube")
`
`ts
import { compress, decompress } from './cubeCompress';
// 压缩:输入 cube 文件字符串,输出字节数组
const cubeString = '...'; // 完整 .cube 文件内容
const bytes: Uint8Array = compress(cubeString);
// 解压:输入字节数组(.cubexs 或 compress 的输出),输出 cube 文件字符串
const restored: string = decompress(bytes);
`
- compress(cubeString: string): Uint8Array — 输入为 cube 文件字符串,输出为字节数组(与 Python 写出的 .cubexs 格式一致)。
- decompress(bytes: Uint8Array): string — 输入为字节数组,输出为 cube 文件字符串。
依赖:fflate(gzip 压缩/解压,自带 TypeScript 类型)。
- This is a Python script distributed via npm for convenience.
- You need Python and NumPy available in your environment.
- Compression is lossy (float32 -> 24-bit) and output formatting may differ from the original.
- compress() always writes .cubexs and decompress() always writes .cube`.