anymodbus

v0.2.0 safe
4.0
Medium Risk

Async-native Modbus RTU client for Python, built on AnyIO and anyserial.

🤖 AI Analysis

Final verdict: SAFE

The package exhibits low risks across all critical areas, with only minor concerns regarding metadata and potential obfuscation. Given the lack of evidence pointing towards malicious intent, the package can be considered safe.

  • Low network and shell risks
  • Ambiguous obfuscation risk
  • No clear credential risk
  • Some metadata inconsistencies
Per-check LLM notes
  • Network: No network calls detected, which is normal for a Modbus library focused on local device communication.
  • Shell: No shell execution detected, aligning with the expected behavior of a Modbus protocol handling package.
  • Obfuscation: The observed byte sequences may indicate obfuscation but could also be part of Modbus protocol encoding, making it ambiguous without further context.
  • Credentials: No clear patterns indicative of credential harvesting were found.
  • Metadata: The package shows some red flags, such as an author with a missing or short name and a new/inactive account, but there are no clear signs of typosquatting or malicious intent.

📦 Package Quality Overall: Medium (6.6/10)

✦ High Test Suite 9.0

Test suite present — 25 test file(s) found

  • Test runner config found: conftest.py
  • Test runner config found: pyproject.toml
  • 25 test file(s) detected (e.g. conftest.py)
◈ Medium Documentation 7.0

Some documentation present

  • Documentation URL: "Documentation" -> https://graysonbellamy.github.io/anymodbus/
  • Detailed PyPI description (7018 chars)
○ Low Contributing Guide 2.0

No contributing guide or governance files found

  • No CONTRIBUTING, CODE_OF_CONDUCT, or governance files found
◈ Medium Type Annotations 7.0

Partial type annotation coverage

  • Classifier: Typing :: Typed
  • Type checker (mypy / pyright / pytype) referenced in project
  • 254 type-annotated function signatures detected in source
✦ High Multiple Contributors 8.0

Active multi-contributor project

  • 3 unique contributor(s) across 21 commits in GraysonBellamy/anymodbus
  • Small but multi-author team (3–4 contributors)

🔬 Heuristic Checks

Outbound Network Calls

No suspicious network call patterns found

Code Obfuscation score 2.0

Found 1 obfuscation pattern(s)

  • 0\x01\x00\x03", b"\x10\x00\x01\x00\x02\x04\x00\x0a\x01\x02", ]: adu = encode_adu(slave_address=42,
Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: umd.edu>

Suspicious Page Links

All external links appear legitimate

Git Repository History score 2.5

Git history flags: Repository has zero stars and zero forks

  • Repository has zero stars and zero forks
Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with anymodbus
Create a real-time data monitoring tool for industrial devices using the 'anymodbus' Python package. This tool will connect to various sensors or controllers over a serial interface using Modbus RTU protocol and display live data readings on a simple graphical user interface (GUI). Here are the key steps and features to include in your project:

1. **Setup**: Install necessary packages including 'anymodbus', 'tkinter' for GUI, and 'anyio' for asynchronous operations.
2. **Connection Configuration**: Allow users to configure the serial port settings such as baud rate, parity, stop bits, and timeout through a configuration file or input form within the GUI.
3. **Data Retrieval**: Use 'anymodbus' to establish an asynchronous connection to the device and periodically read data from specific registers (e.g., temperature, pressure, voltage).
4. **Live Data Display**: Update the GUI in real-time with the latest data values retrieved from the device. Ensure the display is clear and easy to understand.
5. **Error Handling**: Implement robust error handling to manage issues like lost connections, incorrect data formats, and other potential errors gracefully.
6. **Logging**: Optionally, log all communication events and errors to a file for troubleshooting purposes.
7. **User Interface Enhancements**: Add features such as a start/stop button to begin or pause data collection, and a settings menu to adjust parameters dynamically without restarting the application.

This project leverages 'anymodbus' to handle low-level communication details efficiently, allowing you to focus on building a user-friendly and functional monitoring tool.