tgoop.com/psauxww/1333
Last Update:
По работе часто встречаю железки с SNMP. К сожалению, в Rust с ними вменяемо работает только один крейт, собственно snmp, но автор забил на него 7 лет назад окончательно. Я же годами бегал вокруг-около и дописывал внутренние патчи и внешние микромодули.
Внезапно попалась железка, опрос которой нужно перетащить с питона на раст, которая поддерживает только SNMPv1, а в крейте, опять же внезапно, оказалось поддержки первой версии нету (хотя очень удивительно, v1 отличается от v2 по сути только тем, что в v2 добавили 64-битные counters, а в v1 их нет). В оригинальном крейте валялся PR, чуть менее старый чем сам крейт, где автор зачем-то вместе с v1 притащил tokio.
В общем, поскольку в Европах выходные, а я не пью, решил наконец этот крейт форкнуть. Из чего появился мой красивый и современный snmp2.
Из основого, что изменилось:
- собственно поддержка SNMPv1
- немного поменялось PDU API и теперь им можно прекрасно обрабатывать любые TRAPs (добавил пример)
- MIBs (под фичей, требует libnetsnmp)
- привел более-менее весь код к современному виду
- главное - смигрировал велосипедный Object Identificator на Oid из крейта asn, который давно стандарт во всей растовской X.690-экосистеме
- добавил async (под фичей)
Оно работает и даже хорошо. Будем в январе наконец запиливать туда и SNMPv3.
p.s. Пользуясь случаем, всех с наступающими и наступившими.
BY Segment@tion fault
Share with your friend now:
tgoop.com/psauxww/1333