Skip to content

Repository files navigation

Box Format SDK

A Kotlin SDK for the Box archive format — a binary container format with built-in checksums, metadata, and extensible section-based design.

LicenseBuild Status

Project status

Current release: v0.1 — core functionality complete. Not yet stable for production use.

FeatureStatus
Create/open/save .box archivesDone
Add/list/extract files and foldersDone
Nested folder supportDone
Key-value metadataDone
SHA-256 checksums (header, file, chunk)Done
Binary format validationDone

Planned: compression, streaming, encryption.

Quick start

git clone https://github.com/rishavbuilder/box-format-sdk.git
cd box-format-sdk
./gradlew :samples:run

Create a box

importdev.box.writer.BoxWriterImplval writer =BoxWriterImpl()
val result = writer.create("archive.box")
val box = result.value()
box.setMetadata(4, "Author Name")
box.addFolder("/docs")
box.addFile("/docs/readme.txt", "Hello".toByteArray())
box.save()
box.close()

Read a box

importdev.box.reader.BoxReaderImplval reader =BoxReaderImpl()
val result = reader.open("archive.box")
val box = result.value()
for (entry in box.entries()) {
println(entry.path)
}
box.extractAll("./output/")
box.close()

Modules

ModulePurpose
box-coreData models and constants
box-apiPublic interfaces
box-parserBinary file reader
box-serializerBinary file writer
box-readerHigh-level read API
box-writerHigh-level write API
box-validatorArchive validation
samplesDemo application
testsIntegration tests

Documentation

Building

Requires JDK 17+.

./gradlew build
./gradlew test

Contributing

See CONTRIBUTING.md.

License

MIT — see LICENSE.

About

Kotlin SDK for the Box archive format — binary container format with checksums, metadata, and extensible design.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages