A native Go library for parsing SMIv1/2 MIB files, providing a libsmi-compatible API.
gosmi is a Go library for parsing SMI (Structure of Management Information) MIB (Management Information Base) files, which define network management data structures used in protocols like SNMP. It provides a pure Go implementation that replaces the need for the C-based libsmi library, allowing developers to parse MIBs without external dependencies.
Go developers building network management tools, SNMP agents, or telemetry systems that require parsing MIB files.
Developers choose gosmi because it offers a native Go alternative to libsmi, eliminating C dependencies and simplifying deployment, while maintaining compatibility with existing libsmi-based code.
Parsing MIBs so you don't have to!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As a pure Go library, it eliminates the need for C-based libsmi, simplifying installation and cross-compilation for Go applications, as highlighted in the README's native implementation.
Provides a Go API that mirrors libsmi, easing migration from C codebases, with examples in cmd/smi for seamless integration.
Parses both SMIv1 and SMIv2 MIB files, covering common standards used in network management, as specified in the key features.
Includes cmd/embed for compiling MIB data into Go binaries, reducing runtime dependencies and enhancing portability.
The README explicitly states the implementation 'may change in the future,' risking breaking changes for production code without clear deprecation policies.
Being implemented in Go, it cannot be used directly in non-Go projects, limiting its utility in mixed-language environments or legacy systems.
As a newer library, it lacks the extensive community tools, plugins, and documentation available for the established libsmi, which could slow adoption.
gosmi is an open-source alternative to the following products: