suoten/ProtoForge
Python0 / 0
로컬에서 15개 산업 프로토콜과 49개 장비 템플릿으로 통신 검증을 가능한 Python 기반 툴
TL;DR
ProtoForge는 로컬에서 하드웨어 없이 PLC·센서·카메라 등 산업 장비의 통신을 시뮬레이션해 SCADA나 게이트웨이 연결을 검증할 수 있는 Python 기반 플랫폼이다. 설치는 pip로 소스에서 설치하거나 docker-compose로 배포할 수 있고 protoforge demo 명령으로 즉시 데모 장비와 시나리오를 띄워 손쉽게 기능을 점검할 수 있다. Modbus TCP·HTTP는 기본으로 동작하며 OPC‑UA, MQTT, BACnet, Siemens S7 등은 extras로 선택 설치해야 하므로 실제 검증에 필요한 프로토콜 의존성만 추가해 사용하면 된다.
핵심 포인트
- 지원 프로토콜이 15종으로 다양하며 Modbus TCP와 HTTP는 별도 의존성 없이 바로 동작하고 OPC‑UA, MQTT, BACnet, Siemens S7 등은 pip extras([opcua], [mqtt], [bacnet], [s7])로 추가 설치하도록 구성되어 있다. README에 각 프로토콜의 기본 포트가 표로 정리되어 있어 포트 충돌을 .env나 웹 UI에서 빠르게 조정할 수 있다. 프로토콜 구현은 protoforge/protocols 아래에 위치하고 템플릿은 JSON으로 제공되므로 필요한 프로토콜만 골라 설치하고 템플릿을 재사용해 장비를 빠르게 생성할 수 있다.
- 장비 템플릿이 49개 제공되며 Vue3 기반의 웹 UI에서 드래그·드롭 방식으로 시나리오를 편집하고 장비를 생성할 수 있도록 설계되어 있다. 로컬 설치는 pip install -e . 후 protoforge demo로 4개의 데모 장비와 1개 시나리오를 즉시 띄울 수 있고 Docker Compose로도 백그라운드 배포가 가능해 평가나 CI 환경에 빠르게 적용할 수 있다. README에 기본 로그인(admin/admin)과 Swagger UI(/docs)·ReDoc(/redoc) 접근 경로가 명시되어 있어 설치 후 검증 과정이 단순하다.
- 테스트와 관측용 기능으로는 일괄 테스트 자동생성, 통신 패킷의 기록·재생, InfluxDB/HTTP 파일 포워딩, Prometheus 포맷의 메트릭 수집, JWT 인증과 RBAC가 포함되어 있다. 이들 기능은 백엔드의 API(/api/v1/...)와 웹 UI를 통해 제어되며 recorder·forward·testing 모듈이 각각의 처리 흐름(input→process→output)을 책임지도록 코드 조직이 되어 있다. 결과적으로 게이트웨이·SCADA 연동 검증이나 프로토콜 컨버터 테스트 시 실제 장비 없이 통신 흐름을 재현하고 문제 원인을 재현 가능한 로그로 확보할 수 있다.
- 개발자 확장성과 운영 편의성에 대한 고려가 보이며 Python SDK와 명확한 프로젝트 구조(protoforge/core, protocols, templates, web/)를 제공한다. 프론트엔드는 web 디렉토리에서 npm run dev로 개발 서버를 띄워 API를 프록시하는 워크플로우를 지원하고 백엔드는 .env로 설정을 제어해 포트·DB 경로를 운영환경에 맞춰 변경할 수 있다. MIT 라이선스와 현재 56 스타·25 포크라는 메타데이터는 개인·소규모 팀의 내부 테스트용으로 사용하기에 진입 장벽이 낮다는 실용적 근거를 제공한다.
56
Stars
25
Forks
+204
Trending
0
조회수
56 watchers3 open issues
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.