raft

package module
v0.0.0-...-5e318b9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2025 License: MIT Imports: 5 Imported by: 0

README

go-raft

Package raft provides tools for reading and writing RAFT files, for the Go programming language.

The raft format is a very simple and easy to understand archive format and container format that can combine multiple files into a single aggregate file.

Archive Formats and Container Formats have many use-case:

  • backups,
  • eBooks,
  • file-systems,
  • image galleries,
  • journals,
  • music albums,
  • photo albums,
  • software packages,
  • website archives,
  • etc.

Basically, any use-case where you need to combine multiple files into a single aggregate file.

The raft format is similar to other archive formats, such as the ar format, the cpio format, the shar format, the tar format, and the WARC format — but is designed to be easier to understand and implement than most (probably all) of the other archive formats and container formats.

The raft format is meant to be both programmer-legible and programmer-friendly.

For more information on the raft format see: https://github.com/reiver/raft-format

Documention

Online documentation, which includes examples, can be found at: http://godoc.org/github.com/reiver/go-raft

GoDoc

Examples

Here is an example of writing a raft file:

import "github.com/reiver/go-raft"

// ...

raftfile, err := raft.CreateFileWriter(filename)
if nil != er {
	return err
}
defer raftfile.Close()

err := raftfile.EmbedFromFile(file)
if nil != err{
	return err
}

err := raftfile.EmbedFromFile(file1)
if nil != err{
	return err
}

err := raftfile.EmbedFromFile(file2)
if nil != err{
	return err
}

err := raftfile.EmbedFromFileRenamed("newname.jpeg", file2)
if nil != err{
	return err
}

err := raftfile.EmbedFromString("something.txt", "Hello world!\n\nHow are you?\n")
if nil != err{
	return err
}

err := raftfile.EmbedFromBytes("something.txt", []byte{'H','i','!','\n'})
if nil != err{
	return err
}

Import

To import package raft use import code like the follownig:

import "github.com/reiver/go-raft"

Installation

To install package raft do the following:

GOPROXY=direct go get github.com/reiver/go-raft

Author

Package raft was written by Charles Iliya Krempeaux

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppendBytes

func AppendBytes(writer Writer, filename string, content []byte) error

AppendBytes embeds a file in a raft-file with the provided file-name and the contents of the file provided as []byte.

Use this if you need the write to be atomic.

func AppendString

func AppendString(writer Writer, filename string, content string) error

AppendString embeds a file in a raft-file with the provided file-name and the contents of the file provided as a `string`.

Use this if you need the write to be atomic.

func Walk

func Walk(reader io.Reader, fn WalkFunc) error

Types

type WalkFunc

type WalkFunc func(filename string, reader io.Reader) error

type Writer

type Writer interface {
	io.Writer
	Sync() error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL