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())

Video Streaming

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:
        print("Streaming video...")
        
        # Consume real-time video chunks (fragmented MP4)
        while client.is_connected:
            chunk = await client.get_next_video_chunk(timeout=1.0)
            if chunk:
                # Send chunk.data to websocket, write to file, etc.
                pass

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,
    show_wallpaper: bool = False,
    capture_fps: int = 30,
    record_to: str | None = None,
)

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
  • is_streaming - Whether video streaming is active
  • consumer_lag_chunks - Number of queued video chunks (back-pressure indicator)

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
  • get_next_video_chunk(timeout) - Get the next video chunk for real-time streaming
  • get_pipeline_stats() - Get detailed latency statistics
  • transcode(input, output) - Static utility to convert .ts recordings to .mp4
  • 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
│       ├── display.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.8.8.tar.gz (743.6 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.8.8-cp314-cp314-win_amd64.whl (160.2 kB view details)

Uploaded CPython 3.14Windows x86-64

simple_rdp-0.8.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (272.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

simple_rdp-0.8.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (270.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

simple_rdp-0.8.8-cp314-cp314-macosx_11_0_arm64.whl (253.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

simple_rdp-0.8.8-cp314-cp314-macosx_10_12_x86_64.whl (262.5 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

simple_rdp-0.8.8-cp313-cp313-win_amd64.whl (160.4 kB view details)

Uploaded CPython 3.13Windows x86-64

simple_rdp-0.8.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (273.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

simple_rdp-0.8.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (271.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

simple_rdp-0.8.8-cp313-cp313-macosx_11_0_arm64.whl (254.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

simple_rdp-0.8.8-cp313-cp313-macosx_10_12_x86_64.whl (262.6 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

simple_rdp-0.8.8-cp312-cp312-win_amd64.whl (160.7 kB view details)

Uploaded CPython 3.12Windows x86-64

simple_rdp-0.8.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (273.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

simple_rdp-0.8.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (271.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

simple_rdp-0.8.8-cp312-cp312-macosx_11_0_arm64.whl (254.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

simple_rdp-0.8.8-cp312-cp312-macosx_10_12_x86_64.whl (262.8 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

simple_rdp-0.8.8-cp311-cp311-win_amd64.whl (162.5 kB view details)

Uploaded CPython 3.11Windows x86-64

simple_rdp-0.8.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (273.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

simple_rdp-0.8.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (272.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

simple_rdp-0.8.8-cp311-cp311-macosx_11_0_arm64.whl (254.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

simple_rdp-0.8.8-cp311-cp311-macosx_10_12_x86_64.whl (263.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: simple_rdp-0.8.8.tar.gz
  • Upload date:
  • Size: 743.6 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.8.8.tar.gz
Algorithm Hash digest
SHA256 a6dd2463fbed386c42031da075d44c1ded11a6bc7b96dac95d06f4bd4fd7fa23
MD5 1b73326caf170b04b31cf45ad329fc5f
BLAKE2b-256 fc54baae114f260e9e7cc2efcbce1d53a4da54346f1c2d9cc4aa43a26222aa25

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.8.8-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 160.2 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.8.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 af13d7ffbd92b7ed9196a6007f52e4b2fc28512d443236e9d38119f1441e2c26
MD5 05f60b89420379834ab3712807ab255e
BLAKE2b-256 4ab72854b54a6e96224b3bc1f50cd6f2bb6310784f3372cbc29413324d9f0425

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75e168a1e7130763d11f23a193b4fd0e955b4cd16c18d0e6801aa960d0c3f4b0
MD5 8af0453f2dfdb3807cbe42509d5985ef
BLAKE2b-256 3a4af2b88c070b4a615d3bfb3c4718c5691230b2e6a366c12add8a7ce64d7e60

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e4ad66317ea9d95201714e074729f31561ebaab5ab858c12ed01b6d4c08e0b55
MD5 12baf955247a1de91d9db3015ad3b79b
BLAKE2b-256 23ac19e69d504c9139f0ca00636d924c07196f2a118695d6d78910429c55a836

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea72e4da4e2175f6ef33a78600993eb60cf765357fca11ac35d09f0e73ddd9c8
MD5 eb1a30b5a281d4882f953e2bdbcd5b1c
BLAKE2b-256 04723eba64a9ec8b1d3398f4c2204a8a510f600aec70a2388b86d8c09a980656

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e8fd7134b85756bfb7520abbcf0b7c1d2ca8a6abbf22befad1116b0e8007164d
MD5 64c635150ea9dbd0de1a2b8bd583cd42
BLAKE2b-256 b2ee18bd9aa5b3e4315fa927b9d4990625367f0c179d02260d3fcd10566a23bf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.8.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 160.4 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.8.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e878d90567a423171a779698e407b74cf08debcbd28a7129a22bdd12a63957fb
MD5 d02d6a927fdc6c84381ddfdeebdfda54
BLAKE2b-256 f38c6ce2942339181f18480238d4f4f94fa419f8b8df61b255e72276782dba69

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 870d7a920a34d64716a80588390da2fcbb6cb14a2f7ac31ead8662c5cb31385c
MD5 db08d4e9f95480040f561570ff013db3
BLAKE2b-256 9bbfdd1966135fa27d9b56b7cd288011f8ba72d3aa5d51c691622f9c0bc7cbfe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fb41b714da551e7634923ad7e7122e470db10ea6de0c17e07174cf8aef49cdb1
MD5 dc8b91f0ea02167d42340a428a624625
BLAKE2b-256 bb0aa04ef9ca9d4dda6f9598032c93cfe45c4ee0c547101b85cd364257e6ae88

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4202974bfc8a6a6afd9ea0ee39fce16a9871b43f4e2ac670b75bbb937e98b9cd
MD5 ab5244ff0e06b15852fe7988c59a6da5
BLAKE2b-256 d1d42491cf6ad7c9880525fd24865ad5d2d8b9637a693ea532262d4a44013f25

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 08d4fc4d1182a29d33d813cf7c7d193e772cdc05241e34125f095c5ddf4565ac
MD5 d50631052f9dac91831bf790b05fe317
BLAKE2b-256 a2eed970661b5985144fc9e8f461be7906d9b431151ecc7d44759f20aecbfa64

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.8.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 160.7 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.8.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 096e070262363e52247602fe7e2d995d4f7672c81aa860db973be39134080235
MD5 3b740efd72a5457dff1b0f5b63d0380e
BLAKE2b-256 a57333dd46ed09aa134c3ccec97c8fd25b9eb3418a90259e2ec114abc8134d2d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a4c4b41898849cd42c418bcdb269f2e343e6ad0ea1fba9564249cf151d330d34
MD5 683e607374f4f6cd6b515d35e161566c
BLAKE2b-256 e3637f6c4d5280038add81d7c214f7b0a492214f302795c1f688abae1a48ce9d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a152ab3e2ee2a8f69310c9c464f91581daa9043b0d705569bf6576fa867b1ed8
MD5 65909ad41430783deea9aea5c0207401
BLAKE2b-256 77953af554cfd1b60f52044ebe3b1be4509b8a4ac0e8fdc7f5b4b7cf2c0cf6e0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf70d9a69de9a596f869341139e86aad0a0ea7f797b927bbda8ed74f80edd063
MD5 ae0b27f3469939c6087335b402e75a87
BLAKE2b-256 7094e90155f57dec866a946c161b78dcca4f99758ccf1094ff08dfe5518ac95f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ee0e150723a03dcc0e358403e38f157af79e474da172396d1d0318c16a8faa7f
MD5 6cc6f51c9510df1c143316cac05fbd36
BLAKE2b-256 021d3821566aa0a4adfd250ad1e7ec165fe133113e2d612c3cfa8e8a46438479

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.8.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 162.5 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.8.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6d2c65ef4597c7d5ade93427c62b5857ad20020f2af701e853edbe39fc2108ce
MD5 799bddb4bc6c9d1e589c22278438a96d
BLAKE2b-256 979e7a30a145bf2244376e09ad6a9705273f508f73dc25aef2ada2eeceed17d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2d9ea27795a67b42fdce95511ee87b4744ee13030dfb78ec503e479d37bed8bc
MD5 329998c851f6a7e098d31ae4a0c8a32a
BLAKE2b-256 f931dcec0a5384643d3274a332d375f22087c4dc0cd5b60931d559206774c238

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c93b628516b8d7b26b73ec2ef62fa1b601de29c8d135828eae4ad4a3f16ceab0
MD5 c78199c516e2edbcccf29f1b8126cd03
BLAKE2b-256 04fd1e4b90a8133cce2bf33fa9a3c18413c9f2332e5302d61940a510e33f66ba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04af4e8833fff9708189f7037be36ab3c01a1a4310b84517e01b4c57a9cf21fc
MD5 0ee938bbad5935676994a7aef0821d90
BLAKE2b-256 ef34b12d063dbc5e63499dfbdcbee6b4be0301ed283a9d2c700ccd13c33c6537

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.8.8-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 560a050c249ba59a64032a598a5056053ea388c1561ad9dbf7b66fdf61b4b610
MD5 d5b686c5857f3c68116acbd9e25aa788
BLAKE2b-256 4d9e87b94f6c0149c06ff3261bb3817597855f1ede331464f6846bcb604e01a9

See more details on using hashes here.

Provenance

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