# Curzibn/Luban

Luban 2（鲁班 2） —— 高效简洁的 Android 图片压缩工具库，像素级还原微信朋友圈压缩策略。(An efficient and concise Android image compression library that closely replicates the compression strategy of WeChat Moments.)

Repository: https://github.com/Curzibn/Luban
Canonical: https://ross.abutalabs.com/products/luban
Language: C
License: Apache-2.0
License Family: permissive
Topics: luban, android, image-compression
Last push: 2026-01-19T12:05:40+00:00

## Health v2 (maintenance only)
Score: 51/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 63, release rhythm 8, longevity 100
- inputs: {"age_days": 3692, "days_push": 226, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 13761, forks 2257 (observed 2026-08-28T04:11:04.740718+00:00)

## What it is
Luban 2 is an Android image compression library written in Kotlin that reverse-engineers WeChat Moments' compression strategy to produce similarly small, high-quality images. It uses Kotlin Coroutines for async processing and TurboJPEG for efficient encoding, with adaptive resolution and bitrate strategies.

## Use cases
- compress photos before uploading from an Android app
- reduce image file sizes to match WeChat Moments quality
- downscale high-resolution camera photos to save bandwidth
- handle very long screenshots or panorama images without OOM
- preserve PNG transparency while converting large PNGs to JPEG

## When to choose
- you build Android apps that upload user photos and need small, visually good results
- you want compression output close to WeChat Moments
- you need coroutine-based async compression with robust edge-case handling

## When to avoid
- you need image compression on platforms other than Android
- you need general-purpose image editing beyond compression and resizing
- you require exact byte-identical WeChat compression output

## Facets
- artifact type: library
- maturity: active
- function: image-processing, compression
- domain: image-processing, mobile-development, android-tools
- platform: -
- tags: image-compression, kotlin, coroutines, turbojpeg, wechat-moments, jpeg, android

## Member repositories
- Curzibn/Luban (main) score 51

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:04.740718+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:13:03.409282+00:00, confidence not recorded.
  - readme: https://github.com/Curzibn/Luban (fetched 2026-08-28T04:11:04.740718+00:00, sha 78a5a2a29da8)
- Data as of 2026-08-30T08:39:29.467469+00:00.
