MCPcopy Index your code
hub / github.com/at-wat/ebml-go

github.com/at-wat/ebml-go @v0.18.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.18.0 ↗ · + Follow
373 symbols 1,178 edges 57 files 116 documented · 31% 1 cross-repo links updated 7d agov0.18.0 · 2026-04-13★ 909 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ebml-go

GoDoc ci codecov Go Report Card License

A pure Go implementation of bi-directional EBML encoder/decoder

EBML (Extensible Binary Meta Language) is a binary and byte-aligned format that was originally developed for the Matroska audio-visual container. See https://matroska.org/ for details.

This package implements EBML Marshaler and Unmarshaler for Go. Currently, commonly used elements of WebM subset is supported.

Usage

Check out the examples placed under ./examples directory.

API is documented using GoDoc. EBML can be Marshal-ed and Unmarshal-ed between tagged struct and binary stream through io.Reader and io.Writer.

References

License

This package is licensed under Apache License Version 2.0.

Extension points exported contracts — how you extend this code

Lacer (Interface)
Lacer is the interface to read laced frames in Block. [11 implementers]
lacer.go
Unlacer (Interface)
Unlacer is the interface to read laced frames in Block. [7 implementers]
unlacer.go
BlockWriter (Interface)
BlockWriter is a Matroska block writer interface. [11 implementers]
mkvcore/interface.go
BlockWriter (Interface)
BlockWriter is a WebM block writer interface. [11 implementers]
webm/interface.go
BlockInterceptor (Interface)
BlockInterceptor is a interface of block stream muxer. [2 implementers]
mkvcore/interceptor.go
BufferCloser (Interface)
BufferCloser is bytes.Buffer with io.Closer interface. [2 implementers]
internal/buffercloser/buffercloser.go
UnmarshalOption (FuncType)
UnmarshalOption configures a UnmarshalOptions struct.
unmarshal.go
MarshalOption (FuncType)
MarshalOption configures a MarshalOptions struct.
marshal.go

Core symbols most depended-on inside this repo

Bytes
called by 60
internal/buffercloser/buffercloser.go
Is
called by 46
internal/errs/errors_112.go
wrapErrorf
called by 37
error.go
Close
called by 31
mkvcore/interface.go
Write
called by 27
lacer.go
Unmarshal
called by 25
unmarshal.go
Marshal
called by 24
marshal.go
Write
called by 20
mkvcore/interface.go

Shape

Function 151
Method 98
Struct 92
Interface 20
FuncType 6
TypeAlias 6

Languages

Go100%

Modules by API surface

mkvcore/option.go26 symbols
mkvcore/blockwriter_test.go26 symbols
marshal_test.go26 symbols
value.go24 symbols
unmarshal_test.go20 symbols
reader.go18 symbols
mkvcore/interceptor.go17 symbols
webm/webm.go16 symbols
lacer.go14 symbols
mkvcore/struct.go11 symbols
mkvcore/interface.go11 symbols
value_test.go10 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add ebml-go \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact