Documentation
¶
Index ¶
- func FUCreate(filename string) io.WriteCloser
- func FUOpen(file_or_url string) io.ReadCloser
- func IterateBinaryRecords(filename string, recordSize int, processor func([]byte))
- func IterateCSV(filename string, opts CSVOptions, processor func([]string) error) error
- func IterateCSVMap(filename string, opts CSVOptions, processor func(map[string]string) error) error
- func IterateFlatBufferList(filename string, processor func([]byte) error) error
- func IterateGzipRecords(filename string, recordSize int, processor func([]byte))
- func IterateIDTabFile(filename string, processor func(int32, string))
- func IterateJSONL(filename string, processor func(map[string]any) error) error
- func IterateJSONLTyped[T any](filename string, processor func(T) error) error
- func IterateLines(filename string, processor func(string))
- func IterateMsgPack(filename string, processor func(any) error) error
- func IterateMsgPackTyped[T any](filename string, processor func(T) error) error
- func IterateParquet(filename string, processor func(ParquetRecord) error) error
- func IterateParquetAny(filename string, processor func(map[string]any) error) error
- func IterateZlibRecords(filename string, recordSize int, processor func([]byte))
- func IterateZstdRecords(filename string, recordSize int, processor func([]byte))
- func LoadBinFile(filename string, dest *[]byte)
- func LoadFlatBuffer(filename string) ([]byte, error)
- func LoadFlatBufferCompressed(filename string) ([]byte, error)
- func LoadMmap(filename string) ([]byte, error)
- func LoadMsgPack(filename string, dest any) error
- func LoadMsgPackCompressed(filename string, dest any) error
- func LoadMsgPackMap(filename string) (map[string]any, error)
- func LoadMsgPackMapCompressed(filename string) (map[string]any, error)
- func ReadInput(filename string) ([]map[string]any, error)
- func ReadSQLInput(driver, dsn, query string) ([]map[string]any, error)
- func SaveFlatBuffer(filename string, builder *flatbuffers.Builder) error
- func SaveFlatBufferCompressed(filename string, builder *flatbuffers.Builder) error
- func SaveFlatBufferList(filename string, records [][]byte) error
- func SaveMsgPack(filename string, data any) error
- func SaveMsgPackCompressed(filename string, data any) error
- func SaveMsgPackMap(filename string, data map[string]any) error
- func SaveMsgPackMapCompressed(filename string, data map[string]any) error
- func WriteOutput(filename string, records []map[string]any) error
- func WriteParquet(filename string, records []ParquetRecord) error
- func WriteParquetAny(filename string, records []map[string]any) error
- type CSVOptions
- type MmapFile
- type ParquetRecord
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FUCreate ¶
func FUCreate(filename string) io.WriteCloser
FUCreate creates a file and returns an io.WriteCloser. Automatically compresses based on file extension: .gz (gzip), .zst (zstd default), .zst1 (zstd level 1), .zst2 (zstd level 2), .zlib/.zz (zlib), .lz4 (lz4), .br (brotli), .xz (xz)
func FUOpen ¶
func FUOpen(file_or_url string) io.ReadCloser
FUOpen opens a file or URL and returns an io.ReadCloser. Automatically detects and decompresses files based on extension: .gz (gzip), .zst/.zst1/.zst2 (zstd), .zlib/.zz (zlib), .lz4 (lz4), .br (brotli), .xz (xz)
func IterateBinaryRecords ¶
IterateBinaryRecords iterates over a file of binary records of fixed recordSize. Automatically detects compression format by extension: .gz (gzip), .zst (zstd), .zlib/.zz (zlib) If no compression extension is detected, processes file as plain binary. Calls processor function on every record.
filename - "filename" or "http://url" recordSize - size of each binary record in bytes
func IterateCSV ¶
func IterateCSV(filename string, opts CSVOptions, processor func([]string) error) error
IterateCSV processes a CSV file row by row. Supports compression auto-detection by extension (.gz, .zst). Each row is passed to the processor function as a slice of strings.
filename - "filename" or "http://url" (with optional .gz or .zst extension) opts - CSV parsing options (use DefaultCSVOptions() for defaults) processor - function that receives each CSV row
Example:
fileiterator.IterateCSV("data.csv.gz", fileiterator.DefaultCSVOptions(), func(row []string) error {
fmt.Printf("Row: %v\n", row)
return nil
})
func IterateCSVMap ¶
IterateCSVMap processes a CSV file with header row, returning each row as a map. Supports compression auto-detection by extension (.gz, .zst). First row is used as headers (keys), subsequent rows are returned as map[header]value.
filename - "filename" or "http://url" (with optional .gz or .zst extension) opts - CSV parsing options (SkipHeader is ignored, first row is always header) processor - function that receives each CSV row as a map
Example:
fileiterator.IterateCSVMap("users.csv", fileiterator.DefaultCSVOptions(), func(row map[string]string) error {
fmt.Printf("Name: %s, Email: %s\n", row["name"], row["email"])
return nil
})
func IterateFlatBufferList ¶
IterateFlatBufferList iterates over a FlatBuffer file containing multiple records Each record should be prefixed with a 4-byte length (uint32, little-endian) Supports compressed files via FUOpen auto-detection (.fb, .fb.gz, .fb.zst, .fb.lz4, etc.)
File format: [length1:uint32][record1:bytes][length2:uint32][record2:bytes]...
func IterateGzipRecords ¶
IterateGzipRecords iterates over gzip-compressed file of binary records (explicit gzip)
func IterateIDTabFile ¶
IterateIDTabFile iterates over TAB separated (ID <tab> NAME) file with automatic decompression ID is parsed as hexadecimal int32, NAME is converted to lowercase Supported: .gz (gzip), .zst (zstd), .zlib/.zz (zlib), .lz4 (lz4), .br (brotli), .xz (xz)
func IterateJSONL ¶
IterateJSONL processes a JSONL (JSON Lines) file line by line. Supports compression auto-detection by extension (.gz, .zst). Each line is parsed as JSON and passed to the processor function.
filename - "filename" or "http://url" (with optional .gz or .zst extension) processor - function that receives each parsed JSON object
Example:
fileiterator.IterateJSONL("data.jsonl.gz", func(obj map[string]any) error {
fmt.Printf("ID: %v, Name: %v\n", obj["id"], obj["name"])
return nil
})
func IterateJSONLTyped ¶
IterateJSONLTyped processes a JSONL file with a typed struct. Supports compression auto-detection by extension (.gz, .zst). Each line is parsed into the provided type T.
filename - "filename" or "http://url" (with optional .gz or .zst extension) processor - function that receives each parsed object of type T
Example:
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
fileiterator.IterateJSONLTyped("users.jsonl", func(user User) error {
fmt.Printf("User: %s\n", user.Name)
return nil
})
func IterateLines ¶
IterateLines processes lines in a file with automatic decompression Supported: .gz (gzip), .zst (zstd), .zlib/.zz (zlib), .lz4 (lz4), .br (brotli), .xz (xz)
func IterateMsgPack ¶
IterateMsgPack iterates over a MessagePack stream file Each record in the file is decoded and passed to the processor Supports compressed files via FUOpen auto-detection
func IterateMsgPackTyped ¶
IterateMsgPackTyped iterates over a MessagePack stream file with type safety Each record is decoded into type T and passed to the processor Supports compressed files via FUOpen auto-detection
func IterateParquet ¶
func IterateParquet(filename string, processor func(ParquetRecord) error) error
IterateParquet reads Parquet file and calls processor for each record Automatically handles compression detection via FUOpen Schema: id, name, email, age, score, active, category, timestamp
func IterateParquetAny ¶
IterateParquetAny reads Parquet file and calls processor for each record as map[string]any Automatically handles compression detection via file extension Supports ANY Parquet schema
func IterateZlibRecords ¶
IterateZlibRecords iterates over zlib-compressed file of binary records (explicit zlib) This is the original function for backward compatibility
func IterateZstdRecords ¶
IterateZstdRecords iterates over zstd-compressed file of binary records (explicit zstd)
func LoadBinFile ¶
LoadBinFile loads a file with automatic decompression into a byte buffer Supported: .gz (gzip), .zst (zstd), .zlib/.zz (zlib), .lz4 (lz4), .br (brotli), .xz (xz)
func LoadFlatBuffer ¶
LoadFlatBuffer loads a FlatBuffer from a file with buffered IO Returns the raw bytes for zero-copy access Uses 4MB buffer for maximum performance
func LoadFlatBufferCompressed ¶
LoadFlatBufferCompressed loads a FlatBuffer from a compressed file Supports all compression formats via FUOpen auto-detection Compression formats: .gz, .zst, .zst1, .zst2, .zlib, .zz, .lz4, .br, .xz
func LoadMmap ¶
LoadMmap loads a file using memory mapping for ultra-fast access Returns the data as a byte slice. The underlying memory mapping is managed internally and will be cleaned up when appropriate.
WARNING: The returned slice is backed by mmap. Do not use it after the program terminates or if you need guaranteed persistence across process restarts. For long-lived data that outlives the file access, copy the bytes.
Best for: Large read-heavy files where random access is needed Not suitable for: Compressed files, streaming, or write operations
func LoadMsgPack ¶
LoadMsgPack loads data from a MessagePack file with buffered IO Uses 4MB buffer for maximum performance
func LoadMsgPackCompressed ¶
LoadMsgPackCompressed loads data from a compressed MessagePack file Supports all compression formats via FUOpen auto-detection
func LoadMsgPackMap ¶
LoadMsgPackMap loads a map from MessagePack file with buffered IO
func LoadMsgPackMapCompressed ¶
LoadMsgPackMapCompressed loads a map from compressed MessagePack file
func ReadSQLInput ¶
ReadSQLInput executes a SQL query and returns generic records
func SaveFlatBuffer ¶
func SaveFlatBuffer(filename string, builder *flatbuffers.Builder) error
SaveFlatBuffer saves a FlatBuffer to a file with buffered IO Uses 4MB buffer for maximum performance
func SaveFlatBufferCompressed ¶
func SaveFlatBufferCompressed(filename string, builder *flatbuffers.Builder) error
SaveFlatBufferCompressed saves a FlatBuffer to a compressed file Supports all compression formats via file extension: .gz (gzip), .zst (zstd), .zlib/.zz (zlib), .lz4 (lz4), .br (brotli), .xz (xz)
func SaveFlatBufferList ¶
SaveFlatBufferList saves multiple FlatBuffer records to a file with length prefixes Each record is prefixed with a 4-byte length (uint32, little-endian) Supports compression via file extension (.fb.gz, .fb.zst, .fb.lz4, etc.)
func SaveMsgPack ¶
SaveMsgPack saves data to a MessagePack file with buffered IO Uses 4MB buffer for maximum performance
func SaveMsgPackCompressed ¶
SaveMsgPackCompressed saves data to a compressed MessagePack file Supports all compression formats via file extension: .gz (gzip), .zst (zstd), .zlib/.zz (zlib), .lz4 (lz4), .br (brotli), .xz (xz) Common usage: filename.msgpack.zst (MessagePack + Zstandard)
func SaveMsgPackMap ¶
SaveMsgPackMap saves a map to MessagePack file with buffered IO
func SaveMsgPackMapCompressed ¶
SaveMsgPackMapCompressed saves a map to compressed MessagePack file Common usage: data.msgpack.zst (MessagePack + Zstandard)
func WriteOutput ¶
WriteOutput writes records to any supported format
func WriteParquet ¶
func WriteParquet(filename string, records []ParquetRecord) error
WriteParquet writes records to Parquet file with Snappy compression Automatically handles additional compression via FUCreate (if filename has .gz/.zst/.lz4 extension) Schema: id, name, email, age, score, active, category, timestamp
func WriteParquetAny ¶
WriteParquetAny writes generic records to Parquet file with Snappy compression Automatically infers schema from data - supports ANY record structure Handles compression via FUCreate (if filename has .gz/.zst/.lz4 extension) Supported types: int64, float64, string, bool
Types ¶
type CSVOptions ¶
type CSVOptions struct {
Comma rune // Field delimiter (default: ',')
Comment rune // Comment character (default: 0, disabled)
SkipHeader bool // Skip first row as header
TrimLeadingSpace bool // Trim leading space in fields
}
CSVOptions configures CSV parsing behavior
func DefaultCSVOptions ¶
func DefaultCSVOptions() CSVOptions
DefaultCSVOptions returns default CSV parsing options
type MmapFile ¶
type MmapFile struct {
Data []byte
// contains filtered or unexported fields
}
MmapFile represents a memory-mapped file with lifecycle management