SnmpKit ๐
A modern, comprehensive SNMP toolkit for Elixir - featuring a unified API, pure Elixir implementation, and powerful device simulation.
SnmpKit is a complete SNMP (Simple Network Management Protocol) solution built from the ground up in pure Elixir. It provides a clean, organized API for SNMP operations, MIB management, and realistic device simulation.
โจ Key Features
- ๐ฏ Unified API - Clean, context-based modules (
SnmpKit.SNMP
,SnmpKit.MIB
,SnmpKit.Sim
) - ๐งฌ Pure Elixir Implementation - No Erlang SNMP dependencies
- ๐ Advanced MIB Support - Native parsing, compilation, and object resolution
- ๐ฅ๏ธ Realistic Device Simulation - Create SNMP devices for testing and development
- โก High Performance - Optimized for large-scale operations and concurrent requests
- ๐งช Testing Friendly - Comprehensive test helpers and simulated devices
๐ Quick Start
Installation
def deps do
[
{:snmpkit, "~> 0.3.5"}
]
end
Basic Usage
# Basic SNMP operations
{:ok, description} = SnmpKit.SNMP.get("192.168.1.1", "sysDescr.0")
{:ok, system_info} = SnmpKit.SNMP.walk("192.168.1.1", "system")
# MIB operations
{:ok, oid} = SnmpKit.MIB.resolve("sysDescr.0")
{:ok, name} = SnmpKit.MIB.reverse_lookup([1, 3, 6, 1, 2, 1, 1, 1, 0])
# Device simulation
device_profile = %{
name: "Test Router",
objects: %{[1, 3, 6, 1, 2, 1, 1, 1, 0] => "Test Router v1.0"}
}
{:ok, device} = SnmpKit.Sim.start_device(device_profile, port: 1161)
๐๏ธ Architecture
SnmpKit.SNMP
- Complete SNMP protocol operationsSnmpKit.MIB
- Comprehensive MIB managementSnmpKit.Sim
- Realistic device simulationSnmpKit
- Direct access for convenience
๐ Documentation
- Complete API Documentation - Full function reference
- Interactive Livebook Tour - Learn by doing
- MIB Guide - Working with MIBs
- Testing Guide - Testing strategies
- Contributing Guide - Development guidelines
๐ค Contributing
We welcome contributions! Please see the Contributing Guide for guidelines.
๐ License
SnmpKit is released under the MIT License.
Ready to simplify your SNMP operations? Get started with SnmpKit today! ๐