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.7.0.tar.gz (442.8 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.7.0-cp314-cp314-win_amd64.whl (149.7 kB view details)

Uploaded CPython 3.14Windows x86-64

simple_rdp-0.7.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (262.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

simple_rdp-0.7.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (260.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

simple_rdp-0.7.0-cp314-cp314-macosx_11_0_arm64.whl (244.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

simple_rdp-0.7.0-cp314-cp314-macosx_10_12_x86_64.whl (253.3 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

simple_rdp-0.7.0-cp313-cp313-win_amd64.whl (149.9 kB view details)

Uploaded CPython 3.13Windows x86-64

simple_rdp-0.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (262.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

simple_rdp-0.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (260.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

simple_rdp-0.7.0-cp313-cp313-macosx_11_0_arm64.whl (244.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

simple_rdp-0.7.0-cp313-cp313-macosx_10_12_x86_64.whl (253.5 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

simple_rdp-0.7.0-cp312-cp312-win_amd64.whl (150.1 kB view details)

Uploaded CPython 3.12Windows x86-64

simple_rdp-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (263.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

simple_rdp-0.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (260.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

simple_rdp-0.7.0-cp312-cp312-macosx_11_0_arm64.whl (244.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

simple_rdp-0.7.0-cp312-cp312-macosx_10_12_x86_64.whl (253.9 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

simple_rdp-0.7.0-cp311-cp311-win_amd64.whl (151.7 kB view details)

Uploaded CPython 3.11Windows x86-64

simple_rdp-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (263.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

simple_rdp-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (261.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

simple_rdp-0.7.0-cp311-cp311-macosx_11_0_arm64.whl (244.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

simple_rdp-0.7.0-cp311-cp311-macosx_10_12_x86_64.whl (253.8 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: simple_rdp-0.7.0.tar.gz
  • Upload date:
  • Size: 442.8 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.7.0.tar.gz
Algorithm Hash digest
SHA256 ebd961895e46373698f6de9c2582177f7e0cba790fbcb8a5b6abb0ea990b3cc6
MD5 87e2eeca35e9f67180f42e1df6ffb4d3
BLAKE2b-256 ca50cc4c7eb5bf738b6ae6da827b6e38573503d581a40d8eabace5965dbab08e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.7.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 149.7 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.7.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c5e4e39bbbccfb04bb0ceee1a3dbae213a3a59408229535fce41c6202fbff30b
MD5 b4f75068fc3ab8d59bfcbe2ac8a2b425
BLAKE2b-256 836e03331a215b23cfba1a4b63ad537d35dfee0098957bf610fe371923e88ce3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 22b27ab59bfebf01bca2ec527eff394fed0cd461484a3a6cf3461c3485b64e21
MD5 0795f1ffc6f31824ec0cec8c3d391048
BLAKE2b-256 70e5d53d26aee5165adfec1d611cbad47b564c4cda2cbf0e4c94249029a2d91a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7e7e8178fac3804c3649cd62bab86f56141a747abd02762c45f3285b52ac61d6
MD5 82db1eab27068ce5fa8a6db91cb3fc89
BLAKE2b-256 822e27bbfac036f0190b0444d8f378f5c6bb640b4e80cecde32914b8e6054876

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0cd5ddc083bb679961e52ebbc2bd8c6d381504abf4e9acfe1946a6e04358d74f
MD5 183ded5ff71d332176002a868c5d8670
BLAKE2b-256 96db62c21538d775be6d9d4535add1739316fa1919fd6f5fe1563741d79fdb24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d33c21ab53c3030d9601a9f022d98591a64a70a74372db1d77c9c27589e71293
MD5 e6bd77c40d79aaa8e15d0ba7d00324b1
BLAKE2b-256 446f94f2a0c19085c5150d04071be76200dd9ec73dd1476a43e8d26faeac59d7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.7.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 149.9 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.7.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a823db326acf9ece4ba24d3db33293d7d388759b02f3bdfe904aa9a4e2d5aee7
MD5 c58ccbb56576a80d193845486be532ec
BLAKE2b-256 3d85df432193a7ca4e49a7930a3e0b2a278154db63775ae0b0d04f59ab983a82

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 405dda2b0e3103008b224e87afb69dcacab95c2aef57fe3acc49cbb2ff7ec861
MD5 68025e31f0526fb49acfce15e747a247
BLAKE2b-256 ef2a2c2cca819b95041f04d9a0a278e21729fb45306b3030659eae98a774b4ea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 439910edbe44c3b35f063e6bdf1eb8448f34441f363eaba6e11f5864ce8b0b0e
MD5 7feb7ef7f4b6c7661f39363288a4c0b8
BLAKE2b-256 ba3ea148931dd34a111641944c927cefaf090e3b9349bdff2fd882bd7a63b2d0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d7bdadd499b25252843a94528b0ef3ea02dab607c39d27f2c2b01cfa09fc7bb
MD5 c4eacd561538a1a8e5e68e817ed16dbf
BLAKE2b-256 ed796b10909cda9721a04160412743eadf7095d9040228f4ec4f9b538dea93de

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cfb44789326d63b1e6941276eb3ec003ba67b11f912968ea2c732393234868a6
MD5 54a6d02f7b0a182b25dcd6ca5569f892
BLAKE2b-256 29ace4d26f477c5a0e05b4156d173608b4a8ef0a03d8f50d75d0b30deb622c5c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.7.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 150.1 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.7.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 35f86ab59b866a1959b15562951a0b406bf974c9e85cd3994b0efa49eba259a6
MD5 bb4aca08f1fc19147aea989a04f98114
BLAKE2b-256 f7c50240eb2d6b411e6e6804a97a5d555f6112617661f2ab12026dff43d688bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b660cf372734f9af309ccbf25de50092d02b7f9f903cc64ba8fb28ec74c53aa3
MD5 cd279bc1b7c024f08ebbf06efffd2066
BLAKE2b-256 b48f05f2fecd0aa528172440bbe1ca8416fb5b5f1dd249fd3cf1dee99f87a041

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3459aaa3221888e721a01c958bbcf4bfaacecf0c617877da1052defb8f334aa3
MD5 07b9245fe5fa1b505a399b5842c2c312
BLAKE2b-256 ceb79309bd8ce45e59108a1890eac50cb88d3247052a135b8355dae276bd4e01

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c0c0d2efdd36f9ef83c3fb712861fd6b8741fbc02da173893a903af72bbf83e9
MD5 ff38d03d979c10ce96de2a3f4b10b763
BLAKE2b-256 5cea618f2fd8d8d18cef140a7c39689d964f4c505b7812cf0b401b78788c2ef3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ac3297cbd55b122bf2a22b35bbf2d65c9eb73fac9e23d401aa7138c9a0eba9cf
MD5 93a9fb7c9fbfc9810c98acf8edeecbe4
BLAKE2b-256 037054f0969dc989daa58955084b6a750930d9192acf616fde0856d0bbd7c8d6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.7.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 151.7 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.7.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e2fdfa08b2505fdfe7c125ea2af7bb92a17db7fb70831a910fec76512926cd59
MD5 968bdcef85648bfec451978d56268063
BLAKE2b-256 ad8e9ff55d0d7b6327b93c307e8ee3dca4cc8fae4f84c17c6533954dab1b65de

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2df75a9a716fcf167574b4f031cea8526515159b3cd7a1936e82ea073e863db8
MD5 5eb00ed15f00bc9481e636fac769cfcb
BLAKE2b-256 1865ee0cd7fc99b0d00656ed68ed7c63f1118672515944871d8826d3df7f8507

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bef5c5eda060f4558e7e8ac277c65b4d3dba15b4fe88a54e05491ca3cddc0d23
MD5 b9982938bd6667766de0cfd720103c6f
BLAKE2b-256 d18e99f4e18d31910189c5af6c60aa9e983ad1098c2383586bf09c98acfaec4d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12104a7976912c2397f498077cd83949314536866a5ba9009f8d339774dff189
MD5 90334f986768e04963f08828a5bbdb24
BLAKE2b-256 5a370c4fd50c62ce1b1b2e15af69f0d17d86b334b549f91aa10e5c32a8fa03cc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.7.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b4b5cc61758d7a40dffc1347e830984489115db67d53e2aec4658e9a9f6fe204
MD5 b998ea8f963670061df890e5d086c528
BLAKE2b-256 fdd0beb8f353cbf210392cdc184952e0fd05d73996ce6f0e66e8d285cee6ec63

See more details on using hashes here.

Provenance

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