{"id":26022002,"url":"https://github.com/luben/zstd-jni","last_synced_at":"2026-02-21T15:05:53.629Z","repository":{"id":27848875,"uuid":"31339163","full_name":"luben/zstd-jni","owner":"luben","description":"JNI binding for Zstd","archived":false,"fork":false,"pushed_at":"2026-02-09T17:09:05.000Z","size":45907,"stargazers_count":1005,"open_issues_count":18,"forks_count":195,"subscribers_count":22,"default_branch":"master","last_synced_at":"2026-02-13T09:57:44.541Z","etag":null,"topics":["android","compression","jni-binding","lossless-compression-algorithm","native-library"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luben.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-02-25T22:29:05.000Z","updated_at":"2026-02-13T03:32:34.000Z","dependencies_parsed_at":"2023-02-18T12:19:59.641Z","dependency_job_id":"6d5ac25e-e1f9-4f34-a9d2-758b30653e0e","html_url":"https://github.com/luben/zstd-jni","commit_stats":null,"previous_names":[],"tags_count":111,"template":false,"template_full_name":null,"purl":"pkg:github/luben/zstd-jni","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luben%2Fzstd-jni","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luben%2Fzstd-jni/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luben%2Fzstd-jni/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luben%2Fzstd-jni/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luben","download_url":"https://codeload.github.com/luben/zstd-jni/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luben%2Fzstd-jni/sbom","scorecard":{"id":601585,"data":{"date":"2025-08-11","repo":{"name":"github.com/luben/zstd-jni","commit":"9c3386d306086078155f58116a4d905e07239db4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"checks":[{"name":"Maintained","score":10,"reason":"7 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":4,"reason":"Found 9/22 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci-qemu-cross.yml:1","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-qemu-cross.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci-qemu-cross.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-qemu-cross.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci-qemu-cross.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:91: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:140: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:157: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:158: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/luben/zstd-jni/ci.yml/master?enable=pin","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   7 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 2-Clause \"Simplified\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T00:34:44.790Z","repository_id":27848875,"created_at":"2025-08-21T00:34:44.790Z","updated_at":"2025-08-21T00:34:44.790Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29684084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T14:31:22.911Z","status":"ssl_error","status_checked_at":"2026-02-21T14:31:22.570Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","compression","jni-binding","lossless-compression-algorithm","native-library"],"created_at":"2025-03-06T09:54:09.276Z","updated_at":"2026-02-21T15:05:53.623Z","avatar_url":"https://github.com/luben.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"Zstd-jni\n========\n\n[![CI](https://github.com/luben/zstd-jni/workflows/CI/badge.svg)](https://github.com/luben/zstd-jni/actions)\n[![codecov.io](http://codecov.io/github/luben/zstd-jni/coverage.svg?branch=master)](http://codecov.io/github/luben/zstd-jni?branch=master)\n[![Maven Central](https://img.shields.io/maven-central/v/com.github.luben/zstd-jni.svg?label=Maven%20Central)](https://search.maven.org/artifact/com.github.luben/zstd-jni/)\n[![Javadocs](https://www.javadoc.io/badge/com.github.luben/zstd-jni.svg)](https://www.javadoc.io/doc/com.github.luben/zstd-jni)\n\nOverview\n--------\n\nJNI bindings for **Zstd** native library that provides fast and high\ncompression lossless algorithm for Android, Java and all JVM languages:\n\n* static compress/decompress methods\n\n* implementation of InputStream and OutputStream for transparent compression\nof data streams fully compatible with the \"zstd\" program.\n\n* minimal performance overhead\n\nZstd\n----\n\n**Zstd**, short for Zstandard, is a new lossless compression algorithm, which\nprovides both good compression ratio _and_ speed for your standard compression\nneeds. \"Standard\" translates into everyday situations which neither look for\nhighest possible ratio (which LZMA and ZPAQ cover) nor extreme speeds (which\nLZ4 covers).\n\n**Zstd** is developed by Yann Collet and the source is available at:\nhttps://github.com/facebook/zstd\n\nThe motivation for development, the algorithm used and its properties are\nexplained in the blog post that introduces the library:\nhttp://fastcompression.blogspot.com/2015/01/zstd-stronger-compression-algorithm.html\n\nStatus and availability\n-----------------------\n\n**Zstd** is production ready with a stable format.\n\n**Zstd-jni** is tracking the release branch of **Zstd** (master) with\ncompatibility support for the legacy formats (since version 0.4).\n\n**Zstd-jni** version uses the base **Zstd** version with **Zstd-jni** release\nappended with a dash, e.g. \"1.2.0-2\" is the second **Zstd-jni** release based\non **Zstd** version 1.2.0.\n\nLimitations\n-----------\nThe Java classes cannot be renamed/minimized/relocated. JVM linking the native\nlibrary depends on the class name that is trying to link the native part, so\nchanging the class names will lead to failed linking at runtime.\n\nBuilding and dependencies\n-------------------------\n\n**Zstd-jni** uses SBT for building the library and running the tests.\n\nThe build system depends on Scala and the tests depend on ScalaTest and\nScalaCheck but the produced JAR does not have any dependencies. It also\nembeds the native library.\n\n*Note*: For the moment the project depends on a local build of `sbt-java-module-info`\nv0.5.2, as that version is not published to Maven. Before compiling, you need to publish it locally:\n```\n$ cd sbt-java-module-info \u0026\u0026 ./sbt publishLocal \u0026\u0026 cd -\n```\n\nCompile and test:\n```\n $ ./sbt compile test package\n```\n\nIf you want to publish it to you local ivy2 repository:\n```\n $ ./sbt publishLocal\n```\n\nBinary releases\n---------------\n\nThe binary releases are architecture dependent because we are embedding the\nnative library in the provided Jar file. Currently they are built for\n*linux-amd64*, *linux-i386*, *linux-aarch64*, *linux-armhf*, *linux-ppc64*,\n*linux-ppc64le*, *linux-mips64*, *linux-s390x*, *linux-riscv64*, *linux-loongarch64*,\n*win-amd64*, *win-x86*, *win-aarch64*, *darwin-x86_64* (MacOS X), *darwin-aarch64*,\n*aix-ppc64*, *freebsd-amd64*, and *freebsd-i386*.\n\nMore builds will be available if I get access to more platforms.\n\nYou can find published releases on Maven Central.\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.github.luben\u003c/groupId\u003e\n        \u003cartifactId\u003ezstd-jni\u003c/artifactId\u003e\n        \u003cversion\u003eVERSION\u003c/version\u003e\n    \u003c/dependency\u003e\n\nsbt dependency:\n\n    libraryDependencies += \"com.github.luben\" % \"zstd-jni\" % \"VERSION\"\n\nSingle architecture classified jars are also published. The classifier name is\nfollowing the \"$OS_$ARCH\" convention, but there is also a \"cloud\" classifier\nthat packs binaries just for *linux-amd64*, *linux-aarch64* (for deployment),\nand *darwin-aarch64* (to help local development).\n\nThey can be used like:\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.github.luben\u003c/groupId\u003e\n        \u003cartifactId\u003ezstd-jni\u003c/artifactId\u003e\n        \u003cversion\u003eVERSION\u003c/version\u003e\n        \u003cclassifier\u003elinux_amd64\u003c/classifier\u003e\n    \u003c/dependency\u003e\n\nor for sbt:\n\n    libraryDependencies += \"com.github.luben\" % \"zstd-jni\" % \"VERSION\" classifier \"linux_amd64\"\n\nLink for direct download if you don't use a dependency manager:\n\n - https://repo1.maven.org/maven2/com/github/luben/zstd-jni/\n\nIf there is not yet a binary release compatible with your platform look how\nto build it locally under the [Building](#building-and-dependencies) section.\n\nAndroid support\n---------------\n\nZstd-jni is usable in Android applications by importing the sources in Android\nStudio. I guess using git submodules will also work.\n\nAndroid archive (*zstd-jni.aar*) is also published on maven central. You will need\nto add the repository in your build.gradle, e.g.:\n\n    allprojects {\n        repositories {\n            jcenter()\n            mavenCentral()\n        }\n    }\n\nas it is not added by default by Android Studio. And then add dependency on the\nprebuilt android archive (aar):\n\n    dependencies {\n        implementation \"com.github.luben:zstd-jni:VERSION@aar\"\n        testImplementation \"com.github.luben:zstd-jni:VERSION\"\n    }\n\nFor example Android app and how to declare dependencies and use zstd-jni, consult\nthe 2nd and 3rd commit of: https://github.com/luben/ZstdAndroidExample\n\nLicense\n-------\n\nThe code for these JNI bindings is licenced under 2-clause BSD license.\nThe native **Zstd** library is licensed under 3-clause BSD license or\nGPL2. See the LICENSE file and LICENSE and COPYRIGHT in src/main/native\nfor full copyright and conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluben%2Fzstd-jni","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluben%2Fzstd-jni","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluben%2Fzstd-jni/lists"}