SnmpKit ๐Ÿš€

Hex.pm Documentation License

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

๐Ÿ“š Documentation

๐Ÿค 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! ๐Ÿš€