Skip to main content

A Python RDP client for automation - exposes screen capture and input transmission

Project description

Simple RDP

CI codecov Docs

A Python RDP client library designed for automation purposes. Unlike traditional RDP clients, Simple RDP does not provide an interactive session. Instead, it exposes screen capture and input transmission capabilities for building automation workflows.

[!CAUTION] Security Warning: No TLS Certificate Validation

This library does NOT validate TLS certificates when connecting to RDP servers. This means:

  • Connections are vulnerable to man-in-the-middle (MITM) attacks
  • Server identity is not verified
  • Do not use in production environments or over untrusted networks

This limitation is known and will be addressed in a future release. For now, only use this library in trusted network environments (e.g., local development, isolated lab networks).

Features

  • Screen Capture: Capture the remote desktop screen as PIL Images
  • Input Transmission: Send mouse movements, clicks, and keyboard input
  • NLA/CredSSP Authentication: Full support for Network Level Authentication
  • Automation-Focused: Built specifically for automation, not interactive use
  • Async Support: Built with asyncio for non-blocking operations

Requirements

  • Python 3.11+
  • Windows RDP server with NLA enabled

Installation

poetry install

Configuration

Create a .env file in the project root with your RDP connection settings:

cp .env.example .env
# Edit .env with your settings
RDP_HOST=192.168.1.100
RDP_USER=your_username
RDP_PASS=your_password

Usage

Basic Connection and Screenshot

import asyncio
import os

from dotenv import load_dotenv

from simple_rdp import RDPClient

load_dotenv()


async def main():
    async with RDPClient(
        host=os.environ["RDP_HOST"],
        username=os.environ["RDP_USER"],
        password=os.environ["RDP_PASS"],
        width=1920,
        height=1080,
    ) as client:
        # Wait for screen to fully render
        await asyncio.sleep(2)
        
        # Capture and save screenshot
        await client.save_screenshot("desktop.png")
        
        # Or get PIL Image directly
        img = await client.screenshot()
        print(f"Captured: {img.size}")


if __name__ == "__main__":
    asyncio.run(main())

Sending Input

import asyncio
import os

from dotenv import load_dotenv

from simple_rdp import RDPClient

load_dotenv()


async def main():
    async with RDPClient(
        host=os.environ["RDP_HOST"],
        username=os.environ["RDP_USER"],
        password=os.environ["RDP_PASS"],
    ) as client:
        await asyncio.sleep(2)
        
        # Mouse operations
        await client.mouse_move(100, 200)
        await client.mouse_click(100, 200)  # Left click
        await client.mouse_click(100, 200, button=2)  # Right click
        await client.mouse_click(100, 200, double_click=True)  # Double click
        await client.mouse_drag(100, 100, 300, 300)  # Drag from (100,100) to (300,300)
        
        # Keyboard operations
        await client.send_text("Hello, World!")  # Type text
        await client.send_key(0x1C)  # Send Enter key (scancode)
        await client.send_key("a")  # Send 'a' as unicode


if __name__ == "__main__":
    asyncio.run(main())

Manual Connection Management

import asyncio
import os

from dotenv import load_dotenv

from simple_rdp import RDPClient

load_dotenv()


async def main():
    client = RDPClient(
        host=os.environ["RDP_HOST"],
        username=os.environ["RDP_USER"],
        password=os.environ["RDP_PASS"],
        domain="MYDOMAIN",  # Optional domain
    )
    
    try:
        await client.connect()
        print(f"Connected: {client.width}x{client.height}")
        
        await asyncio.sleep(2)
        await client.save_screenshot("screenshot.png")
        
    finally:
        await client.disconnect()


if __name__ == "__main__":
    asyncio.run(main())

API Reference

RDPClient

Constructor

RDPClient(
    host: str,
    port: int = 3389,
    username: str | None = None,
    password: str | None = None,
    domain: str | None = None,
    width: int = 1920,
    height: int = 1080,
    color_depth: int = 32,
)

Properties

  • host - The RDP server hostname
  • port - The RDP server port
  • is_connected - Whether the client is connected
  • width - Desktop width in pixels
  • height - Desktop height in pixels

Methods

  • connect() - Establish connection to the RDP server
  • disconnect() - Disconnect from the server
  • screenshot() - Capture the current screen as a PIL Image
  • save_screenshot(path) - Save a screenshot to a file
  • send_key(key, is_press=True, is_release=True) - Send a keyboard key
  • send_text(text) - Type a text string
  • mouse_move(x, y) - Move the mouse to a position
  • mouse_click(x, y, button=1, double_click=False) - Click at a position
  • mouse_drag(x1, y1, x2, y2, button=1) - Drag from one position to another

Development

Setup

poetry install

# Optional: Install Rust RLE acceleration (100x faster)
cd rle-fast && maturin develop --release && cd ..

Running Tests

# Unit tests (no RDP connection needed)
poetry run pytest tests/ --ignore=tests/e2e

# E2E tests (requires RDP server)
cp .env.example .env  # Edit with your credentials
poetry run pytest tests/e2e/

# With coverage
poetry run pytest tests/ --ignore=tests/e2e --cov=src/simple_rdp

Linting and Type Checking

poetry run ruff check src/
poetry run mypy src/

Pre-commit Hooks

poetry run pre-commit install
poetry run pre-commit run --all-files

Project Structure

simple-rdp/
├── src/
│   └── simple_rdp/
│       ├── __init__.py      # Package exports
│       ├── client.py        # Main RDPClient class
│       ├── capabilities.py  # RDP capability sets
│       ├── credssp.py       # CredSSP/NLA authentication
│       ├── mcs.py           # MCS/T.125 layer
│       ├── pdu.py           # RDP PDU layer
│       ├── rle.py           # RLE bitmap decompression
│       ├── screen.py        # Display class for video encoding
│       └── input.py         # Input handling utilities
├── tests/
│   ├── test_client.py       # Client unit tests
│   ├── test_screen.py       # Display unit tests
│   ├── test_input.py        # Input unit tests
│   └── e2e/                  # End-to-end tests (need real RDP)
│       ├── test_basic_connection.py
│       ├── test_video_recording.py
│       ├── test_performance.py
│       └── test_display.py
├── agents/
│   └── tools/
│       └── analyze_image.py  # AI image analysis tool
├── rle-fast/                 # Rust RLE acceleration (optional)
│   ├── Cargo.toml
│   ├── pyproject.toml
│   └── src/lib.rs
├── .env.example              # Environment template
├── pyproject.toml
└── README.md

Performance

The library includes optional Rust acceleration for RLE bitmap decompression:

Mode Screenshot FPS Event Loop Usage
Pure Python ~15 FPS ~50%
Rust + GIL release ~30 FPS ~10%

Install Rust acceleration with:

cd rle-fast && maturin develop --release

The library automatically uses Rust when available, falling back to pure Python.

Protocol Support

  • X.224 Connection Sequence
  • TLS/SSL encryption
  • CredSSP v6 (NLA authentication with NTLM)
  • MCS Connect/Channel Join
  • RDP capability exchange
  • Fast-Path output (bitmap updates)
  • Interleaved RLE bitmap decompression
  • Slow-path input (keyboard/mouse)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simple_rdp-0.3.1.tar.gz (425.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

simple_rdp-0.3.1-cp314-cp314-win_amd64.whl (146.0 kB view details)

Uploaded CPython 3.14Windows x86-64

simple_rdp-0.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

simple_rdp-0.3.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (256.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

simple_rdp-0.3.1-cp314-cp314-macosx_11_0_arm64.whl (240.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

simple_rdp-0.3.1-cp314-cp314-macosx_10_12_x86_64.whl (249.6 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

simple_rdp-0.3.1-cp313-cp313-win_amd64.whl (146.2 kB view details)

Uploaded CPython 3.13Windows x86-64

simple_rdp-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (259.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

simple_rdp-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (256.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

simple_rdp-0.3.1-cp313-cp313-macosx_11_0_arm64.whl (240.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

simple_rdp-0.3.1-cp313-cp313-macosx_10_12_x86_64.whl (249.8 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

simple_rdp-0.3.1-cp312-cp312-win_amd64.whl (146.5 kB view details)

Uploaded CPython 3.12Windows x86-64

simple_rdp-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (259.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

simple_rdp-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (257.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

simple_rdp-0.3.1-cp312-cp312-macosx_11_0_arm64.whl (241.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

simple_rdp-0.3.1-cp312-cp312-macosx_10_12_x86_64.whl (250.2 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

simple_rdp-0.3.1-cp311-cp311-win_amd64.whl (148.0 kB view details)

Uploaded CPython 3.11Windows x86-64

simple_rdp-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (259.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

simple_rdp-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (257.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

simple_rdp-0.3.1-cp311-cp311-macosx_11_0_arm64.whl (240.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

simple_rdp-0.3.1-cp311-cp311-macosx_10_12_x86_64.whl (250.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

Details for the file simple_rdp-0.3.1.tar.gz.

File metadata

  • Download URL: simple_rdp-0.3.1.tar.gz
  • Upload date:
  • Size: 425.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for simple_rdp-0.3.1.tar.gz
Algorithm Hash digest
SHA256 bdc21df24bc822f5f82f12af4c32524626cdf704750e675ed0ba424a5b3a1b18
MD5 c6872de38563cfcd5a3fb431cfeb3113
BLAKE2b-256 52fdc9b4f419835dae5affd0ced671f3a7e23a069d9d18782a2eec4759f90a63

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1.tar.gz:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: simple_rdp-0.3.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 146.0 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for simple_rdp-0.3.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 20b664582a3205b2148d9c2288bcc644ec0bcc3035665111ae131312c02254ef
MD5 666bf77bf14b09053f8206c2121158c9
BLAKE2b-256 b8fa17165641982fe47665a134792fdb4037c833b98d8c8139f85f348c770007

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp314-cp314-win_amd64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dbccc694bb686327c104a10ea8d86252c9ebf7b8189a9eee6d79cbe4df3756d3
MD5 a0a3ec3aafd20331466a4b05f9c2964c
BLAKE2b-256 80b3cb4baa71e5348b165192fd9d834095ec51d6b6d93386a98e42f7d44fa491

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bc8ed079900cc62ec6112cbec16de62e7b0a923d1db1ae3e220fd3b2d130d933
MD5 ef2b1ffae810c72fba3adf6ef60ea0a6
BLAKE2b-256 b55e4642983cf7c3b630c18f3dcb0d85ded769d8d711ac748056d22441e35c44

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e54201b9bc7cdae409009628021d134989fd58f6747fa71abf448e05d378ec56
MD5 ac8426261fccc11da1e17cff2237bd01
BLAKE2b-256 2c702c4c18ba0a6df08a8d6a30172c3f610980a8662c505a8e9b50cd27ba978d

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 11f12dd75e1c147b4b5dc29292c19e9d78773e24d621556bd83256aaf90b0517
MD5 e88b5f3a765fec99ecee584874539691
BLAKE2b-256 a1fed499b8ab115285f94df8894d2a3b4d64e24273bcd7980bb474d2e31dab49

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: simple_rdp-0.3.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 146.2 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for simple_rdp-0.3.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d532c453c96b48fd9a2a3e5d5b0761595f9205c6ed3f21723db7e6a7e9a43709
MD5 35b7ddf16aa563186e9d70f70cf7fdcf
BLAKE2b-256 4973a32e626cfdab3d99a4cff5e2abc766450b3cde5453ff4a55c2a8fcb917ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp313-cp313-win_amd64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c2eaae3865de9abc5e9b698a49f68f956d35378e879fedf005d8801d4fbfa1bc
MD5 39caaf77b3d4de8e69103627150715f9
BLAKE2b-256 ff08b90a48aa55241aa0ded8541c1af09f9e9df55a92a25fceb9ccc6da5ce458

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8cab63205fa9542aab353194707c62d24503d93eb2ba89b2508785c3e79ad492
MD5 2760eaffc4b94970c9fff8b936f95797
BLAKE2b-256 3934d0661ae233e52053d5f0eb177e6feb00398e0ef95b822e66ee9ce5c48853

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e52e7daba9ff79535d48e3ceea34b6c61f198fb93ed5f4f3facff9f23db71ea2
MD5 67005f168667e766962908cbe569cd05
BLAKE2b-256 4d057f554e45a8dbeb27e48d42e55e6e72da0641f8e55f69c4dbacda383bb97a

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 08994777d3b92d4dc79c8ae03974ec7d6d2e1291917f08c52466668ef59edcd8
MD5 99cd61a515739ada913541f0e722dd6a
BLAKE2b-256 05bc39a22ab010ba109ad3fd8fc3b6c172a85c3681fa2a136d9be6ebb3e455af

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: simple_rdp-0.3.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 146.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for simple_rdp-0.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3642d79c7989ae26b81702afd840a5a5083fe659112fd5551915843883a068e3
MD5 adcb9e102f323d92a046c970f50062c5
BLAKE2b-256 0979718a2865d9fc9f8fa306a418a07f1c4992f3456b7afdf318ca8ad71a0164

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp312-cp312-win_amd64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b10c7d76cbd42d4c8a5c140678b71036db5dbe07e4d7f75777d883356b67600
MD5 ebbb437f706eb38d2787bbd728dda7bf
BLAKE2b-256 23c1d338f594ba86edb6917dd3cf992048bbe238155699d7ff94731eb2407a1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 943b37064ba27fe990d15a7d04be90bf118a645a10fc8925e8fb0628c0d65c70
MD5 cded42ccce1b1148de2a86f0a00e654f
BLAKE2b-256 c769be0da3353f21e7abe608c1ca68327f15b02f69604039d4a00634942452dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a86dfc431d92a086411d0f55a003dbd13d228ccf9e0f79f626e5eee0f8584f0
MD5 dad7e1cb14ffc0ca9104bee3b310103b
BLAKE2b-256 7f8fe1e45d0ad19aa873963a40e9a854c9b2870ea001008a5077a6ff75e39372

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a2499efb66d1d8b838465f5ee7e0d428160bcc738594e04db0c141be6994e8cb
MD5 97ef0d0e834938453df7d2b04303a29d
BLAKE2b-256 a840e8f7e8b676d15906a052b1dd004b4f9e23b66036fa1971f04bab9c4aae49

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: simple_rdp-0.3.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 148.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for simple_rdp-0.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 69294baff49cea8de361e5512cdb5fdcccaa4b3ca12e14bbeeff238f23c9848a
MD5 76650b737b973e2dcf13bd00e392856b
BLAKE2b-256 cdfeebf6d56065483fd78e18f18120165b14f77170270f59b845f89fa487ab7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp311-cp311-win_amd64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3cee34dfe192ce44796afcac9cab739ee34dcf4f81195d915b86110f1457ddff
MD5 0deb469023a8377a94c4371ac61564c6
BLAKE2b-256 8274f65e6142af2a32667f0182ed385b170dbf3f7cdd2b08426cc3830eadbc07

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5b86f28110efddf2ef87af33a0a4af3bf9ef9fda2c3a2ce543d67b3da7eb4107
MD5 5a8e6b43610888f932a7ea85ab5ebe87
BLAKE2b-256 d84631fb354f1158a5ad98cdde4e617af42d06405898c1393a6361b8b8f5df19

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6debedf91fbf4f0558ff3a764c37842ca7cfd0985d9109984d959c2c102398a6
MD5 6f2a4730e5a812ce8fb2c70c003ca0af
BLAKE2b-256 d7933762ed906de193fdb434750029040478526f3e7afbf6b82046d08c4821e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_rdp-0.3.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.3.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c902635a365e49aba3888424b02362f37658bfdc4bcbe7f8dee392b4ddc0f7d4
MD5 dff73bea06ff9a40f9981945c4ba43a9
BLAKE2b-256 5d3507281adeee3e255f67307aecce716dcc89688415ada1f172a3ad9133bb1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.3.1-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: ci.yml on abi-jey/simple-rdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page