Skip to content

Java 8+ distribution (along with native libs) of the TokyoCabinet key value embedded database

Notifications You must be signed in to change notification settings

fizzed/tokyocabinet

Repository files navigation

TokyoCabinet & Native Libs for Java by Fizzed

Maven Central

Java 8 Java 11 Java 17 Java 21

Linux x64 Linux arm64 Linux armhf Linux armel Linux riscv64 Linux MUSL x64 Linux MUSL arm64 MacOS x64 MacOS arm64

Overview

TokyoCabinet remains a workhorse key-value store that still represents excellent performance vs. modern popular embedded key-value stores such as LevelDB or RocksDB. This is a published version of the library for Java 8+, along with native libs that are automatically extracted at runtime.

The Java library is as unmodified as possible from the original TokyoCabinet, but a few changes were made to automatically extract the library at runtime.

Sponsorship & Support

Project by Fizzed, Inc. (Follow on Twitter: @fizzed_inc)

Developing and maintaining opensource projects requires significant time. If you find this project useful or need commercial support, we'd love to chat. Drop us an email at ping@fizzed.com

Project sponsors may include the following benefits:

  • Priority support (outside of Github)
  • Feature development & roadmap
  • Priority bug fixes
  • Privately hosted continuous integration tests for their unique edge or use cases

Usage

Add the following to your maven POM file for Linux x64

<dependency>
  <groupId>com.fizzed</groupId>
  <artifactId>tokyocabinet-linux-x64</artifactId>
  <version>VERSION-HERE</version>
</dependency>

Or MacOS arm64 (Apple silicon)

<dependency>
  <groupId>com.fizzed</groupId>
  <artifactId>tokyocabinet-macos-arm64</artifactId>
  <version>VERSION-HERE</version>
</dependency>

Or for all operating system & arches

<dependency>
  <groupId>com.fizzed</groupId>
  <artifactId>tokyocabinet-all-natives</artifactId>
  <version>VERSION-HERE</version>
</dependency>

To simplify versions, you may optionally want to import our BOM (bill of materials)

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.fizzed</groupId>
            <artifactId>tokyocabinet-bom</artifactId>
            <version>VERSION-HERE</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

Native Libs

Zip and Bzip2 libraries must be installed for this version to run.

 sudo apt install zlib1g libbz2         # e.g. on ubuntu/debian
 sudo apk add zlib bzip2                # e.g. on alpine
OS Arch Artifact Info
Linux x64 tokyocabinet-linux-x64 built on ubuntu 16.04, glibc 2.23
Linux arm64 tokyocabinet-linux-arm64 built on ubuntu 16.04, glibc 2.23
Linux armhf tokyocabinet-linux-armhf built on ubuntu 16.04, glibc 2.23
Linux armel tokyocabinet-linux-armel built on ubuntu 16.04, glibc 2.23
Linux MUSL x64 tokyocabinet-linux_musl-x64 built on alpine 3.11
Linux MUSL arm64 tokyocabinet-linux_musl-arm64 built on alpine 3.11
Linux riscv64 tokyocabinet-linux-riscv64 built on ubuntu 18.04, glibc 2.31
MacOS x64 tokyocabinet-macos-x64 built on macos 10.13 high sierra
MacOS arm64 tokyocabinet-macos-arm64 built on macos 12 monterey

Development

We use a simple, yet quite sophisticated build system for fast, local builds across operating system and architectures.

For linux targets, we leverage docker containers either running locally on an x86_64 host, or remotely on dedicated build machines running on arm64, macos x64, and macos arm64.

To build containers, you'll want to edit setup/blaze.java and comment out/edit which platforms you'd like to build for, or potentially change them running on a remote machine via SSH. Once you're happy with what you want to build for:

 java -jar cross_build_containers
 java -jar cross_build_natives
 java -jar cross_tests

For information on registering your x86_64 host to run other architectures (e.g. riscv64 or aarch64), please see the readme for https://github.com/fizzed/buildx

License

Copyright (C) 2020+ Fizzed, Inc.

This work is licensed under the Apache License, Version 2.0. See LICENSE for details.

About

Java 8+ distribution (along with native libs) of the TokyoCabinet key value embedded database

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published