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.5.0.tar.gz (438.1 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.5.0-cp314-cp314-win_amd64.whl (147.6 kB view details)

Uploaded CPython 3.14Windows x86-64

simple_rdp-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (260.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

simple_rdp-0.5.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (258.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

simple_rdp-0.5.0-cp314-cp314-macosx_11_0_arm64.whl (242.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

simple_rdp-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl (251.3 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

simple_rdp-0.5.0-cp313-cp313-win_amd64.whl (147.9 kB view details)

Uploaded CPython 3.13Windows x86-64

simple_rdp-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (260.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

simple_rdp-0.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (258.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

simple_rdp-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (242.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

simple_rdp-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl (251.4 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

simple_rdp-0.5.0-cp312-cp312-win_amd64.whl (148.1 kB view details)

Uploaded CPython 3.12Windows x86-64

simple_rdp-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (261.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

simple_rdp-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (258.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

simple_rdp-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (242.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

simple_rdp-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl (251.9 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

simple_rdp-0.5.0-cp311-cp311-win_amd64.whl (149.7 kB view details)

Uploaded CPython 3.11Windows x86-64

simple_rdp-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (261.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

simple_rdp-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (259.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

simple_rdp-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (242.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

simple_rdp-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl (251.8 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: simple_rdp-0.5.0.tar.gz
  • Upload date:
  • Size: 438.1 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.5.0.tar.gz
Algorithm Hash digest
SHA256 2699ed0afd57bf8c44bdf69a98aeae26c8c432e8907336f67bf8a25c8f6d9704
MD5 7b0aae8867656b8445a8e89378672b75
BLAKE2b-256 5dd2db45c5ab80382a4574a80ddff880fe97dae9f1565fe0fb66f89a43d03cb2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 147.6 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.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 815ee8895af4e0abf1720a693da0aee7aeda5800d191a1d729472e476c727320
MD5 4c4a5ff9a3bf80ef943d7fd0ed70b30e
BLAKE2b-256 ea761b6761b3cc7f07e338dae3182851e95737f409dc65576c7b3aa3fc8fe0db

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2536df649cf5a9baae576010b04d7b5b45c1570b4468e7035b90f78b273f73c4
MD5 a51cffb74fe2cd9ab14e21efc1a27f3a
BLAKE2b-256 63820b1ba758884153350d3c160e33bbc0917f4bcee8d31f7c95a28f678e9f07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e4765e1475b658b89b56690178382d18ce608c52b96e08c575389a657eec60c8
MD5 11406ed1d5c346d7cc2007af5d0618b5
BLAKE2b-256 8852c4491314e35bd5371d992342c8ad0ec1cb0e4dfffb10c0eddd584228bf91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2548a8849e0e5c36fe4b43442cc8690127be721e619f29b5c456dcdc7e78466b
MD5 3c50961bd63d4c50d313ae8f56355fdd
BLAKE2b-256 3bb18e8c660fb7bcdf770381dbf32451ba436820b043988d5a173f4a3cb149c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 05ed22070a27006dddd6b1a761113e486793387eeed23600c30cb2986dd3c2a4
MD5 c3ac9f14cf080681e9b85682ea3074c4
BLAKE2b-256 8bb156b590811c9f363f2bdeb062d7b6d15707be42c62368766e9b5aa33e85e1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 147.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.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cff915cc0c1255e948a7f5bec1304eec4f3d5d4a2b767f02ccb48f712bb082a7
MD5 3d85e39afbe93e6c3531d907372495a5
BLAKE2b-256 b16b7175b9cbc0b8f0253c3c5a4ebebd0ebd4641d29e8cb4e95cc5890df0abce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e16554645ccdee8d692d5fc5de47e5b8810746fadb23c0431b311b17e5c5138
MD5 56524768eef2b68f02b5ab041915e1f6
BLAKE2b-256 785f19e3c3ce58ed80b46004d90b1846ddf0c4f728528d79a91d8f437541bed9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5c5fa3bd9172fdcf2a63fa38a813a77d261fedf783c794a4414668c8de5caf72
MD5 c7a40f7a1a608fd0811a97829f565339
BLAKE2b-256 1bd33b3c7125927696ee7cbf42363112f81057a43c3fb2d8664676338c649661

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eadc26bcf3507e8e9398def153b4a252d066d1b8d7669b36015978f8edccf2b7
MD5 fd49496a48d75c6b208ea4d96c0d6c38
BLAKE2b-256 fc0896173f80e01ffaf5d5c0ac1237b6bfc99288006ab3986219c43714287a13

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9e5b73a2e5671f335e561a84cb4902e571aa78cf32cf9079ec09e64fa14b6ad6
MD5 5d1e018e453505d74f527ea69df91f03
BLAKE2b-256 a7f8ec51775e4b0e0b9e20e57f6df29ddb122152955aedb8fd379b4961028da4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 148.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.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 504aaa402fce73a90f4938d10129bbe5c266d75f32c43452673065b65c36b982
MD5 b6843e8e83f6c960117712fe50799c4e
BLAKE2b-256 1a621cd971d8e9288d781e6686554c134485e5133e7b00f1b1121f501cceb93a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae64152f71d853b43c2206cc769b4866a4e5e738047381a77b49375850209385
MD5 c57f0678eb0d863a1fb08940672b45e1
BLAKE2b-256 a8aadcb8812ceec34a8d228fb0dbfce2759912f40133496fc9f18d828f676c0d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 38e9babb872dc0fc31aaf53b0996515eba4a5911dfd8f2b5bc1b953b5da66b47
MD5 b076852331c318f98696a04142dd3e67
BLAKE2b-256 e52fbc5a98d326ad98294f688b10f41084696c997af6e69efe8f5bb16b6f45ca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 334650bca8ecba5eaf0b364faf1447f9b7b7cf27117791d85c6581a6280bfc6a
MD5 145dd7eff0a728dbf63c8c9f335d6afd
BLAKE2b-256 4ab4f8dfd476df365cffbb065a3671abf7cb6dfa03397495efe674b4bd314d31

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3f99edcc0a10992594fbf1dc1041d9c61fcc73f4cab1b6ffcb66cb111dd6d32e
MD5 4866819ed8fc13d7a99a598f3d2f6db7
BLAKE2b-256 ccb6835f91b1e715b0ab7352f58f1f1b3ca0df550796141ea8a63bb51a56433e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: simple_rdp-0.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 149.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.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 91ea6c9ef6735f3d54426a1b029032755720bc43b692757aede6c0e098485a6b
MD5 3ec51125688149adbe44f987d9b126de
BLAKE2b-256 dce2da1778c1fa4a5f30e67784ad7e6e0735d57a6a0bfd74b1c73ca232da9c73

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5a406ddb7e77584ab966d6ada1bb3c370382ffab2110bda9e0eb1b79145e3d9e
MD5 6e80714c5ebf37927d97e4047545529d
BLAKE2b-256 884581456d8e353554057cc261f57affafb97701c64dca95997b51695cb1ba38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a2b94c477ac149333c41b9bca1fc23779beb91a681e372dac3e07b02f6db05cf
MD5 7c96ffa3cfa0e07185657553c2c476f4
BLAKE2b-256 78ba5e6a786fc8dba911299ca502af40ed7eae1aef4b70199919dad2a184cd7c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0001d38b7196605f00a629419a8d7083c26d78fe63b1b00df263595ebb28a55f
MD5 218f9c929a5c435cd88f8032690681e2
BLAKE2b-256 780d34bd8a7d59d9336a44d75156d300485283e27dccc6cb0f7eefe016004950

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 800580c8eab663005f4a8ae3c2f5109045606726373f31c3c9b597ea29c9959b
MD5 a0a2dd2b14bdb87ae7034bb8c4d76d81
BLAKE2b-256 dde293c5a49f0242e03751d3e293064eb3507a3b40ebc5860d43036e10a5366b

See more details on using hashes here.

Provenance

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