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.6.0.tar.gz (442.5 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.6.0-cp314-cp314-win_amd64.whl (149.4 kB view details)

Uploaded CPython 3.14Windows x86-64

simple_rdp-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (262.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

simple_rdp-0.6.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (259.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

simple_rdp-0.6.0-cp314-cp314-macosx_11_0_arm64.whl (244.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

simple_rdp-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl (253.0 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

simple_rdp-0.6.0-cp313-cp313-win_amd64.whl (149.6 kB view details)

Uploaded CPython 3.13Windows x86-64

simple_rdp-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (262.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

simple_rdp-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (260.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

simple_rdp-0.6.0-cp313-cp313-macosx_11_0_arm64.whl (244.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

simple_rdp-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl (253.2 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

simple_rdp-0.6.0-cp312-cp312-win_amd64.whl (149.9 kB view details)

Uploaded CPython 3.12Windows x86-64

simple_rdp-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (262.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

simple_rdp-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (260.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

simple_rdp-0.6.0-cp312-cp312-macosx_11_0_arm64.whl (244.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

simple_rdp-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl (253.6 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

simple_rdp-0.6.0-cp311-cp311-win_amd64.whl (151.4 kB view details)

Uploaded CPython 3.11Windows x86-64

simple_rdp-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (262.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

simple_rdp-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (261.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

simple_rdp-0.6.0-cp311-cp311-macosx_11_0_arm64.whl (244.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

simple_rdp-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl (253.5 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: simple_rdp-0.6.0.tar.gz
  • Upload date:
  • Size: 442.5 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.6.0.tar.gz
Algorithm Hash digest
SHA256 6a345715865c0ec0c1452365a56e2053ecc1297087976507f8ebe01edcd3f893
MD5 3dce204edfa4337afb51ca6a3a520e90
BLAKE2b-256 a47387ca71a42f6233f0ea69fb91d6e95fbccf3fdcf89eea68d2a43d68276283

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0.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.6.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: simple_rdp-0.6.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 149.4 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.6.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5cf32500c8c083bdf393a8dd58556e95b04658bbe0d6acf11129b194e90bd2cf
MD5 a5fcb5c31a25eb87a55c235503f7533b
BLAKE2b-256 75e32d8ad829a62d9339f0b7b33d39857186a820f44cd5a25f5bb4be5acb62fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f0b22b85b9311506a66470f85f18cde7c50a28ba513416eebf3ce52ecaf4b30e
MD5 bef58e0a34f7a84608947c5a271f5013
BLAKE2b-256 105003746abcbb3e4257dda7b3d5d4db36d2433447aeb5faa53e5233863d8fad

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a7863bddb3c592f932a9538e78cacc55e13ffd51415f13c373c672815429c35a
MD5 e71543845394dea10787fce9d1fab523
BLAKE2b-256 829ecdc5fc2d450da16009cb638af6f1a2e8331c57a6bb16f952e185b8c6586a

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7bfd98d0f566a01d773be9663bd5f9d50cbce168659378c87c253f6b1099bee7
MD5 3087c8b898c5c8bc582159dfd7f730e3
BLAKE2b-256 2b93689c39243faa8625ec1e0c1adf49917db94b62b63c121681f9d7a60389cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 29881bd0a7f8cf770924c86bca84d1c2dac3941ca9c39c61370babe18594b076
MD5 12fa8e6543b0f41e5d7081982c1ae3b1
BLAKE2b-256 ba8f542370066f60e77dafb4a20b972a39475f3aef8cc3046ff47a9fe41bca26

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: simple_rdp-0.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 149.6 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.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 30a0d0b3070a61ed5611e94450e2e18d75a7f983113e2a844827c7f0e88c736f
MD5 e30bf19852b81bff99f0e18fd609175f
BLAKE2b-256 733666c2cc1535568ce93967ec0f112eadc12dc1fcb2eeef4e7399412e04c93e

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb77c817bb958c7cde2c2991113d78dc861786ddf7757bcafd2e4042c1452cad
MD5 3736b1c1f80e9b7cac876aba93a416a7
BLAKE2b-256 2277c4a51c431e202d6a5fec97ee9b2b3d0c8e4e06d78ab6d39ab2ba12e95d50

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 913b3238c8db01241a926af7a12dea1a797c890dfbaa817954f7f06fa70db625
MD5 a0cae5ba2cfe1fc021bf92c4a3025b52
BLAKE2b-256 2599fd8f41104ddcb3294909e787007904a3d5ea1150de83122b97e44e5871e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06c58e19f16b86cc5c0265e45318ac87fdf14356d176a66258565cef7a87ae59
MD5 f37d16190fe8b79d0a23cd0a11dabb1d
BLAKE2b-256 47c1f869e72f0c1f371ed65b9000a0d4dfa392a2d02c896be2093f484edaeb96

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 23256a264c89eb4faf7117c7e7883cc0ad847c0b4b70e1769462b5f57e101894
MD5 3671eb794b82d65581ae7a216a25dca6
BLAKE2b-256 59cdc776b63e4c85130b34b2a76ff6e23ad968fa6f82f08bc275c8387a2d9ed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: simple_rdp-0.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 149.9 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.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 56408c451520d9b575313413774f95c172f93832e73c6f068ba9f0aa5d25e7ff
MD5 89bbe201de05bf90d79deef626b572ba
BLAKE2b-256 4e96c5b1e1fe99e5303bd2c991211ab4696808cede431bbee9fd77037810c587

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e7eba827ddbe9529fa97f32d2a7d6d3b4b12569c1a6063e0129cd7c576cce34d
MD5 000033b7f9d58920a9ad7c1f3c4fbf68
BLAKE2b-256 049be720d7011b61967274c50684458e4283f5ad186f4c4210afed461f435337

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 88b2ca2ed3cc1c5dc3b62a0325c5371087ac0be060fc492b087f423812d9f4b7
MD5 5ba6c7cd389c781c6660c13624f44425
BLAKE2b-256 62af34f3f12feb85d230f96452839e6254de67462f1428afff34448b7162c2ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 437a09386de4507e82fe70673907b00786abd102f62ecd67b6ec2c8e2999c3b3
MD5 2db25a1321fe01b61468ae4ece88a854
BLAKE2b-256 89c221d227ce10ec9776035313c851b2f7ebd4e5a8ff267c6dc6bec7cc9ea507

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ddf7d23947ba774b112a42124c38f86aeb8e3024a96ad7f56c4ff7fd665a12d8
MD5 fe00a2fa69050042a9f25e691956cca7
BLAKE2b-256 b2360c5c8e1aa6dc4ecca347910ef73b11ba8b00fcd6c05dcfac42f1331446a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: simple_rdp-0.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 151.4 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.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5be759a3c3bfcf02372b31cfefea9f5f63d35cada5ed1ca90ed3bae97a828e7a
MD5 f3fd255c418f2bea435bfcc95ee1b2e9
BLAKE2b-256 fc44f96009b0869267ec194bfce5069af02c51e4eac1a2b074ab5c0b88e60a2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fbb8b4f629add7f9fae0d0881ba393f98c9a00a69fa98b1aa1b0fe738a75d4c2
MD5 a1ccac4fc5b7f50f48d8ffdccbea3c77
BLAKE2b-256 a4862c1527fb9ef91da9fecb93830eb70f36d9df00069f9d578d7e0a2a7c3794

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 85ec9473edd44abb1e6760385e0664c9d400ec1670dcda4f6565b4b05aa10635
MD5 9dd23fe876bf40d90da1b66cb47b2b86
BLAKE2b-256 85b387bcec6579783f438d3108b3205ebb243d14e9de0c484d208614a5e52050

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee89794fa491bea32a9ec42d90be542ffb6716052284f5b2ccde79b0c1757eea
MD5 9bdfbee1382021e824bda482ab72b9bf
BLAKE2b-256 f33ce715de86edccafff0e4dc468b2499401e59f8dbae0280777bf3320f0d4c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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.6.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for simple_rdp-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9df9c65bfb08eb48cfe5e0f38dde8ad1e4532c84db79eb3ce23ae9d52d77701e
MD5 46fc5973dd54d0598db1870d12d1fdd8
BLAKE2b-256 ae6343ff740d5707f5a41cbab6cebdd7789005b361994c6f598034966fd6f4db

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_rdp-0.6.0-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