Read-only GGUF container parsing and ggml block dequantization, in pure MoonBit
| Import | What it holds |
|---|---|
| soehi/gguf | The GGUF container: header, metadata key/values, tensor directory. |
| soehi/gguf/tensor | The ggml type table (all 43 ids) and block dequantization kernels. |
pub(all) suberror GgufError {
Truncated(offset~ : Int64, needed~ : Int64, remaining~ : Int64)
BadMagic(found~ : UInt)
UnsupportedVersion(version~ : UInt, supported_max~ : UInt)
UnknownValueType(offset~ : Int64, type_id~ : UInt)
BadAlignment(value~ : UInt)
AlignmentWrongType(type_id~ : UInt)
ArrayNestingTooDeep(offset~ : Int64, depth~ : Int)
IllegalArrayElementType(offset~ : Int64, type_id~ : UInt)
CountOverflow(offset~ : Int64, count~ : UInt64, elem_size~ : Int64)
CountTooLarge(offset~ : Int64, count~ : UInt64)
TensorCountImplausible(count~ : UInt64, remaining~ : Int64)
TooManyDims(offset~ : Int64, n_dims~ : UInt, max_dims~ : Int)
DataSectionOutOfRange(data_start~ : Int64, buffer_len~ : Int64)
TensorOutOfRange(name~ : String, offset~ : Int64, nbytes~ : Int64, data_len~ : Int64)
TensorNotSupported(name~ : String, type_id~ : UInt, type_name~ : String)
DequantFailed(name~ : String, reason~ : String)
} derive(Eq, Debug)pub(all) struct GgufFile {
version : UInt
alignment : UInt
tensors : Array[TensorInfo]
metadata : Array[(String, MetaValue)]
data_start : Int64
buf : Bytes
}pub(all) enum MetaArray {
Materialized(Array[MetaValue])
Summarized(MetaArraySummary)
} derive(Eq, Debug)let array_materialize_limit : Intlet array_prefix_len : Intfn decode_utf8_lossy(raw : Bytes) -> Stringlet gguf_default_alignment : UIntfn is_scalar_value_type(type_id : UInt) -> Boolfn quote_short(s : String) -> Stringfn read_meta_value(c : ByteCursor, type_id : UInt, materialize? : Bool) -> Result[MetaValue, GgufError]fn value_type_name(type_id : UInt) -> StringInstall
Download zipRead-only GGUF container parsing and ggml block dequantization, in pure MoonBit