Skip to main content

KORE Binary Format - High-performance columnar compression with 5-8x compression ratio

Project description

Kore โ€” Killer Optimized Record Exchange

Crates.io PyPI License Rust 1.70+

A high-performance, columnar file format for analytics with cloud storage connectors.

Kore is a Rust-based columnar file format designed for efficient storage and analysis of structured data. It provides zero external dependencies in the base library with optional cloud connectors for AWS S3, Azure Blob Storage, and Google Cloud Storage.


๐Ÿš€ Quick Start (5 Minutes)

Step 1: Install

pip install kore-fileformat==1.1.4

Step 2: Import

from kore_fileformat import compress_csv

# Compress a CSV file (that's it!)
original, compressed, ratio = compress_csv("data.csv", "data.kore")
print(f"โœ… Compressed {ratio:.1%}")

Step 3: Use It

from kore_fileformat import get_kore_info

# Get file information
info = get_kore_info("data.kore")
print(f"Records: {info['total_records']:,}")

๐Ÿ“š Documentation

Getting Started

Document For Whom Time
docs/INSTALLATION.md Everyone 5 min
docs/USER_GUIDE.md Python users 15 min
docs/EXAMPLES.md Developers 20 min

Reference

Document Coverage
docs/API_REFERENCE.md Complete API documentation with examples
docs/TROUBLESHOOTING.md FAQ, common issues, solutions

Advanced Documentation

Guide Purpose
PYTHON_USER_GUIDE.md Cloud integration, advanced features
DOCKER_EMULATORS_GUIDE.md Docker setup, LocalStack, Azurite testing
DOCUMENTATION_INDEX.md Complete documentation index
CI_CD_SECRETS_SETUP.md GitHub Actions, publishing setup

๐Ÿ‘‰ New users: Start with docs/INSTALLATION.md โ†’ docs/USER_GUIDE.md


โœจ Features

Core Library

  • โœ… Zero External Dependencies: Lightweight base crate
  • โœ… Columnar Format: Optimized for analytical queries
  • โœ… Compression: Built-in data compression
  • โœ… Multi-Platform: Windows, macOS, Linux, web

Cloud Connectors

  • โœ… AWS S3: Full implementation in v1.0.0
  • โณ Azure Blob Storage: Full implementation coming in v1.1.0
  • โณ Google Cloud Storage: Full implementation coming in v1.1.0

Language Bindings

  • โœ… Python: PyO3 wheel for Python 3.9-3.12
  • โœ… Java: JNI bindings and Maven package
  • โœ… JavaScript: NAPI module for Node.js
  • โณ Go: Coming in v1.2.0

DevOps & CI/CD

  • โœ… GitHub Actions: 10 automated jobs for testing and publishing
  • โœ… Docker Support: Integration tests with emulators
  • โœ… Multi-Registry Publishing: crates.io, PyPI, Maven Central, npm

๐Ÿ“‹ What's Included in v1.0.0

Component Status Details
Base Library โœ… Production Columnar format, compression, serialization
S3 Connector โœ… Production Read/write to AWS S3 with LocalStack testing
Azure Connector โณ Prepared Stub implementations, full SDK in v1.1.0
GCS Connector โณ Prepared Stub implementations, full SDK in v1.1.0
Python Bindings โœ… Production Wheel installation, PyPI distribution
Java Bindings โœ… Production JNI library, Maven Central distribution
JavaScript Bindings โœ… Production NAPI addon, npm distribution
Integration Tests โœ… Complete 4 comprehensive tests with emulators
Documentation โœ… Complete 8 guides, 2000+ lines, 50+ examples

๐ŸŽฏ Use Cases

Data Analytics

Process large datasets efficiently with columnar storage:

import kore_fileformat
# Store analytics data in columnar format for fast queries

Cloud Data Lakes

Store data directly in S3, Azure, or GCS:

from kore_fileformat import S3Reader
reader = S3Reader(region='us-east-1')
data = reader.read_file('my-bucket', 'path/to/data.kore')

Multi-Language Projects

Use Kore from Python, Java, or JavaScript in the same project:

# Python: import kore_fileformat
# Java: import com.kore.cloud.S3Reader;
# JS: const kore = require('kore-fileformat');

๐Ÿ—๏ธ Architecture

Modular Design

kore_fileformat/
โ”œโ”€โ”€ core/           # Base library (zero dependencies)
โ”œโ”€โ”€ cloud/          # Cloud connectors (optional)
โ”‚   โ”œโ”€โ”€ s3/        # AWS S3 (working)
โ”‚   โ”œโ”€โ”€ azure/     # Azure Blob (v1.1+)
โ”‚   โ””โ”€โ”€ gcs/       # Google Cloud (v1.1+)
โ””โ”€โ”€ bindings/       # Language bindings
    โ”œโ”€โ”€ python/    # PyO3 wheel
    โ”œโ”€โ”€ java/      # JNI library
    โ””โ”€โ”€ napi/      # Node.js addon

Feature Gates

# Base: zero external dependencies
kore_fileformat = "1.0.0"

# With S3
kore_fileformat = { version = "1.0.0", features = ["s3"] }

# With all cloud (v1.1.0+)
kore_fileformat = { version = "1.0.0", features = ["s3", "azure", "gcs"] }

# With Python bindings
# Use: pip install kore-fileformat

๐Ÿ“Š Performance

Kore is designed for analytics workloads:

  • Compression: 5-10x reduction on typical datasets
  • Query Speed: Columnar format enables fast aggregations
  • Storage: 10-50 MB files with millions of rows
  • Cloud: Direct S3/Azure/GCS integration (no intermediate files)

๐Ÿ› ๏ธ Installation

Requirements

  • Rust: 1.70+ (for building from source)
  • Python: 3.9-3.12 (for Python wheel)
  • Java: 17+ (for Java bindings)
  • Node.js: 14+ (for JavaScript bindings)
  • Docker: 20.10+ (for testing with emulators)

From PyPI (Recommended for Python)

pip install kore-fileformat

From crates.io (Rust)

cargo add kore_fileformat --features s3

Build from Source

git clone https://github.com/arunkatherashala/Kore.git
cd Kore
cargo build --release --features s3

๐Ÿงช Testing

Run Unit Tests

cargo test

Run Integration Tests (requires Docker)

# Start emulators (LocalStack, Azurite, GCS)
docker-compose up -d

# Run tests
cargo test --features s3,azure,gcs --test integration_tests -- --nocapture

# Stop emulators
docker-compose down

See DOCKER_EMULATORS_GUIDE.md for detailed setup.


๐Ÿš€ Cloud Integration

AWS S3 (v1.0.0 - Working)

from kore_fileformat import S3Reader

reader = S3Reader(region='us-east-1')
data = reader.read_file('bucket', 'object.kore')
reader.write_file('bucket', 'object.kore', data)

Azure Blob Storage (v1.1.0 - Coming Soon)

from kore_fileformat import AzureBlobReader

reader = AzureBlobReader('account', 'key')
data = reader.read_file('container', 'blob.kore')

Google Cloud Storage (v1.1.0 - Coming Soon)

from kore_fileformat import GcsReader

reader = GcsReader('project-id')
data = reader.read_file('bucket', 'object.kore')

๐Ÿค Contributing

We welcome contributions! Here's how:

  1. Report Issues: GitHub Issues
  2. Discuss Ideas: GitHub Discussions
  3. Submit PRs: Fork, branch, code, and create a pull request

See V1_1_ROADMAP.md for planned features and how to help.


๐Ÿ“… Roadmap

v1.0.0 (Current) โœ…

  • S3 connector with full API
  • Python, Java, JavaScript bindings
  • Integration tests with emulators
  • Complete documentation

v1.1.0 (Q2 2026)

  • Azure Blob Storage full implementation
  • Google Cloud Storage full implementation
  • Performance optimizations
  • Streaming support

v2.0.0 (Q4 2026)

  • Go language bindings
  • Multi-region support
  • Caching layer
  • Advanced compression

See V1_1_ROADMAP.md for detailed phases and milestones.


๐Ÿ“ฆ Distribution Channels

Latest Versions

Platform Package Version Link
PyPI kore-fileformat 1.0.0 PyPI
Crates.io kore_fileformat 1.0.0 Crates.io
Maven com.arun.kore:kore-cloud-java 1.0.0 Coming v1.1
npm kore-fileformat 1.0.0 Coming v1.1

๐Ÿ”’ Security

Features

  • Zero external dependencies in base library
  • Optional SDKs are version-pinned and updated regularly
  • Integration tests verify cloud connectivity
  • GitHub Actions security scanning

Reporting Security Issues

Please email: arunkatherashala@gmail.com


๐Ÿ“ž Support & Community

Getting Help

Stay Updated

  • GitHub: Star the repository
  • Releases: Watch for v1.1.0 announcement
  • Email: Subscribe to release notifications

๐Ÿ“„ License

Kore is licensed under the Apache License 2.0.

Copyright 2024-2026 Sai Arun Kumar Ktherashala

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

๐Ÿ‘ค Author

Sai Arun Kumar Ktherashala


๐ŸŽฏ What's Next?

For Users

  1. Read: PYTHON_USER_GUIDE.md or DOCKER_EMULATORS_GUIDE.md
  2. Install: pip install kore-fileformat
  3. Explore: Check DOCUMENTATION_INDEX.md for your role

For Contributors

  1. Review: V1_1_ROADMAP.md for v1.1.0 features
  2. Clone: git clone https://github.com/arunkatherashala/Kore.git
  3. Setup: Follow DOCKER_EMULATORS_GUIDE.md
  4. Code: Create feature branch and submit PR

For DevOps

  1. Setup: CI_CD_SECRETS_SETUP.md for automated publishing
  2. Monitor: GitHub Actions workflows on each push
  3. Release: Tag v1.0.1 or v1.1.0 to trigger publishing

โœ… Project Status

Phase Status Delivered
Phase 1: Core Library โœ… Complete Base Kore format, compression, serialization
Phase 2: Cloud SDKs โœ… Partial S3 working, Azure/GCS coming v1.1
Phase 3: Language Bindings โœ… Complete Python, Java, JavaScript production-ready
Phase 4: Integration Tests โœ… Complete 4 comprehensive tests with emulators
Phase 5: CI/CD & Publishing โœ… Complete 10 automated jobs, multi-registry support
Documentation โœ… Complete 8 guides, 2000+ lines, 50+ examples

๐ŸŽ‰ Thank You!

Thank you for choosing Kore! We're excited to see what you build.

Questions? Open an issue or discussion on GitHub.
Want to help? Check V1_1_ROADMAP.md for features to implement.
Found a bug? Report it on GitHub Issues.


Latest Release: v1.0.0
Last Updated: May 14, 2026
Status: Production Ready โœ…

๐Ÿš€ Let's build amazing data infrastructure together!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

kore_fileformat-1.2.9-cp312-cp312-win_amd64.whl (197.5 kB view details)

Uploaded CPython 3.12Windows x86-64

kore_fileformat-1.2.9-cp312-cp312-manylinux_2_34_x86_64.whl (356.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

kore_fileformat-1.2.9-cp311-cp311-macosx_11_0_arm64.whl (308.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

kore_fileformat-1.2.9-cp310-cp310-win_amd64.whl (189.9 kB view details)

Uploaded CPython 3.10Windows x86-64

kore_fileformat-1.2.9-cp310-cp310-manylinux_2_34_x86_64.whl (359.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

kore_fileformat-1.2.9-cp310-cp310-macosx_11_0_arm64.whl (313.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

kore_fileformat-1.2.9-cp39-cp39-win_amd64.whl (194.4 kB view details)

Uploaded CPython 3.9Windows x86-64

kore_fileformat-1.2.9-cp38-cp38-win_amd64.whl (193.6 kB view details)

Uploaded CPython 3.8Windows x86-64

kore_fileformat-1.2.9-cp38-cp38-manylinux_2_34_x86_64.whl (359.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.34+ x86-64

kore_fileformat-1.2.9-cp38-cp38-macosx_11_0_arm64.whl (307.5 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file kore_fileformat-1.2.9-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e4a9cbc2f0597dbf85e4c63ed9ef88d8b3ab1706e3aa10808ef647720ec0e0d1
MD5 d3d78b8a9886dcf218c6d19d624f6bf5
BLAKE2b-256 68319c417b70719a950a3a19d8476b1f3f8a3b24e995732324b048115d224dcc

See more details on using hashes here.

File details

Details for the file kore_fileformat-1.2.9-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 51c7ddae85dbba0d0f2326f758b59c26e400865314d823d41241bcc74b46f65b
MD5 e80deb4619d9f27bf767b2e8e5b6de6d
BLAKE2b-256 2289535f754ed422504b2aefbe8fb78f9422c9d1dbc6cbf9688e1752a54280c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for kore_fileformat-1.2.9-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: publish-pypi.yml on arunkatherashala/Kore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kore_fileformat-1.2.9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fcf69e823dfec054cc7803dccd47cc185a33d54002fba68134ba3faed935a0b9
MD5 e1a0e4092d60c0300a5ce1f02b7f54cb
BLAKE2b-256 76d7c5aa6ea5d29079427f4057daa81cf7e4db9ab09dd4810d9e150d3e31beea

See more details on using hashes here.

Provenance

The following attestation bundles were made for kore_fileformat-1.2.9-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on arunkatherashala/Kore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kore_fileformat-1.2.9-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ca383a2643e5b1969f2796db8c714baeb08ea1c88078527982a75946ad6185b3
MD5 fadef79d3a829feca7223bb5d43f3a62
BLAKE2b-256 feacc7be81d1242c91e07df039eb2fcbe07cfaa323f8e938f41ec5d345f0f443

See more details on using hashes here.

Provenance

The following attestation bundles were made for kore_fileformat-1.2.9-cp310-cp310-win_amd64.whl:

Publisher: publish-pypi.yml on arunkatherashala/Kore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kore_fileformat-1.2.9-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9b3acb566507a05d01a69e1ca76495c237c33cb5f22b9c9bb1cd9814dd086651
MD5 626781b55d6e51554630695abf28ebc9
BLAKE2b-256 6a2fd0175edf71339928d0717094f20e823d0881eafb9625bf8d1e6c7314c0f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for kore_fileformat-1.2.9-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: publish-pypi.yml on arunkatherashala/Kore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kore_fileformat-1.2.9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f9f81203388a348a8b215c5d039c39da62e5ff9272bf730e6dfdb76223863aa
MD5 78d1004bc675eeef21192b15611243bd
BLAKE2b-256 fc1e2fb0f1d31ef8c36d2fbcb2cae115de1d4f0a1a32f107593462e444830670

See more details on using hashes here.

Provenance

The following attestation bundles were made for kore_fileformat-1.2.9-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on arunkatherashala/Kore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kore_fileformat-1.2.9-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8ce4590c6ff7b5d237a5c8457b35abcbfd3a10fc2e7b4be250d45f63fd726325
MD5 f9d672549c39b97efc891ff25e955d6d
BLAKE2b-256 494ee1bd90c29aa896bc276aa5cc1a77781f618d70e2c3df17b55fd3c6678050

See more details on using hashes here.

Provenance

The following attestation bundles were made for kore_fileformat-1.2.9-cp39-cp39-win_amd64.whl:

Publisher: publish-pypi.yml on arunkatherashala/Kore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kore_fileformat-1.2.9-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5d30d225255220a2fcfe2777898b0134605d243ada2bc3e58ddcc5c5be6bbf13
MD5 066158d208f0b767409cf147fa45b099
BLAKE2b-256 5ba4ddaadb103fd14aceb13c9e3299f7404478499a977f6dc002e59762f60b88

See more details on using hashes here.

Provenance

The following attestation bundles were made for kore_fileformat-1.2.9-cp38-cp38-win_amd64.whl:

Publisher: publish-pypi.yml on arunkatherashala/Kore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kore_fileformat-1.2.9-cp38-cp38-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp38-cp38-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 89be569bfb91bd4a731345020762366be72bee18e9a125a6950cb1068d7e465a
MD5 0ed7d607ce57014e8b0cb4ba4cbd9a01
BLAKE2b-256 f17720866ae75a530a29ccdf4c917d2fad5aa5bdae431571b18638e355b195d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for kore_fileformat-1.2.9-cp38-cp38-manylinux_2_34_x86_64.whl:

Publisher: publish-pypi.yml on arunkatherashala/Kore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kore_fileformat-1.2.9-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kore_fileformat-1.2.9-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7dbd54fba203932dff62331fd9906f847bfea20cc7cd1a137029d696fcdeda62
MD5 c37915effd3cda73e601d1ed16d88132
BLAKE2b-256 56d07aeb76945b31c1bb9749ac6a7314e27203346c97f18ba775a5882e8bd7d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for kore_fileformat-1.2.9-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on arunkatherashala/Kore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page