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.2.0.tar.gz (424.9 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.2.0-cp314-cp314-win_amd64.whl (146.0 kB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

simple_rdp-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (256.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

simple_rdp-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl (249.7 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: simple_rdp-0.2.0.tar.gz
  • Upload date:
  • Size: 424.9 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.2.0.tar.gz
Algorithm Hash digest
SHA256 5acd557e8cafca1c979fec3f4cc057f51fa4c073ae0ef7964b396b92df4a8409
MD5 12718fa549ba29e1d16139e14be30c3c
BLAKE2b-256 894f8e9a08c428a2e33b4f85f64d51e7c500ce3205dc342a46499d9063710a10

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for simple_rdp-0.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3b3f192ae240b8b6eb09bd03612e97cb31fa1af3003831f544ff992339fa5650
MD5 110ace48447f550af53c8907e525d0cb
BLAKE2b-256 14e05329307210cdcac314b387a3e863b1712159b8e32e3ce5b9d45db12eeeb3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 975f503e4473ede34e276b82492379c2ae8be6b037aa1080ed081ac154a2c52e
MD5 218d4d224400c9b86ef57ec57744cdad
BLAKE2b-256 ca64ec282c9d0d1eda23a06f2608b6047d72caf377404368becec0b5c55ee770

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c596b3cfc83ae9687ddc5fef6557dd6682ba1c71eb6c2063bee08d03553b5929
MD5 0288510c5a892fd9ab285ce888973b35
BLAKE2b-256 ccdd8bf2556c269dafe21c71c33931c1a8dc0592672ce7b83a931e0dfe50d848

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ff18414fc5bbe6508d00d90371a94635a80cfe2242579f1417f38c4b3bcd2acc
MD5 269ddd98be5617b41aec8c35950bc168
BLAKE2b-256 66f2c9773beb87a3944e1e6e0722feeeed671d39631b8e551517448d38aab1df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ccc5e2b19cf0a69f5485ebddf922bf9728d7f09a8fb378f1fb0262784ea2b416
MD5 05f1be49247e53974baa40d41c1b0fce
BLAKE2b-256 10318e79743201efb948ca6dc518c8654549819fe5f8e43701c0d9521649836d

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for simple_rdp-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f5592bc62f7c4393e8509b1682a36060863c7b3aa7b75f4055efec4fb154d26d
MD5 ed81fa7d27497c2f5e41ed57bb61dcc5
BLAKE2b-256 4ebed6fc0ff35dac2d8ba1e1123d5ae5dc260064138408149d1e43c9d046f0fb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3adee8f7e30da799f030374be791f8a09c27323ab47f105e688275dc923976e4
MD5 0b68d2cdb119d8a29e0306c620f77a22
BLAKE2b-256 a9c25f5ad233ce1c321ac98aacceb35c12b88caaf77d803cdf7ffe12856dc69c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 88a618657f70abec0ac77a64431bfdc392178c7cdb1ffb3d22edb07c6d64a5e3
MD5 1789f45818698d6c6f562fa5a8a4f89b
BLAKE2b-256 dd68bc20f4a1da380804697e675733d56b06b453ab08bf77a0fc6c329b08249d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6eeb2421e363d620b614d5235449b7c937fc9cd84aaadc308e74624c13d562c
MD5 07c656b7b0a456c215a8f1cc97fecb46
BLAKE2b-256 e632162acd0c825fe15360631f54586448d0835b043f0233688eb1d590f1b1ef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b770e441b09a3e347ec437cd2566ab7d5a0177abe3ea66ecc79095acc00fe488
MD5 ba6c16feccc47c178c85c0dc97656693
BLAKE2b-256 d5dafb831df4bb5daf47ae67a3be3e968fc6b116e1912cec0ca118dcde220044

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for simple_rdp-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5e500fd96557422e6fa5e105baa7f61f6b9aa4813a2c562047f74da154ab88ae
MD5 cbfc701f17105096f4fa0d6c5779dbc2
BLAKE2b-256 e70b4654f0e8c286f4b1a3beb9ba1102070edd8ebbd529885a3cb9b518ce319a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b43e00107e25f9f4b4795efd1e3c9c8b75c49612e53517eaa2a82a4a74520c37
MD5 b4c2733dbe298eac1131eec59a6af47a
BLAKE2b-256 8701ee3cb5df8cf4fbec3e37c6eea19ca8209c4cc45638a9cd12b4f2ea915e31

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ab09d3471d6c8e1abd29c9f48c5bfa47f105e251965ba30616ced5a79f4ecbec
MD5 a305791e17a3d4eccb0f8e8dd6e54e39
BLAKE2b-256 fe1dd90cc6c63910b108d1f61091fec7a0a9ebf59cd49fb5190dee7f9e52495b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d5caf08513642e8ec5f6a153cecf6137c937625824abcbf9a5811af252377b7
MD5 bcf3735b97a28f6bdf09b6773a1c76e2
BLAKE2b-256 80f34986e699e8ca31713b31453721d409dcd6a114ae31915c36a2be3eb538ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 818155799dac7dc8a1bd860f13c67d0e6fa453ceb6b54bb3d2dcdad9445ea195
MD5 98a9da260c9691168eb10b084449cd94
BLAKE2b-256 f41cd5b728a539d2abd81dd93dc684370867bf2b74cdfab72caacd167ce717db

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for simple_rdp-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1360b28434008b6c83b904c0e86e346d96a52678d345ac40caa2e872e4778980
MD5 925669cf29331ed6c5fcbceaca1f9212
BLAKE2b-256 c6fd900baf89db13ccc2352389d91b2824462c6b45d71ab5c88deb83474cd1ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fece2a23238fd1376b4946bfb9d28e6949cf7069259c515fe518912837ef646d
MD5 dbc5561482d0aef4f346016e34195625
BLAKE2b-256 70e8ef72634d76e11eafd0d75fe32f3e802ca94ebfc8cb1eeb0e916410e53e91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7e592b707f63a3faf721742fa037971072bee0799c618074dc497b88f2735280
MD5 2ae506c786bd60854062ee69e1d82d21
BLAKE2b-256 b2731002a65fa563de0abff3a89b587d19c536c1f90bdc8234498637a7da8b9c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90a7e8666e257dcc65c9b5baa2a74ace0eb044aa3698935e17dd8e52aa5aecd3
MD5 e6ce950628c5da1693916c7bb27f9f07
BLAKE2b-256 135caf472bba12a5a442b3fbd031270121dcd5d4a24589953d8841a7a10c4de3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for simple_rdp-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 34fdd2dfc1a16fd1ab7d526296baef7aa3632c51ccb2bf03bd3d2b5b44d3dbce
MD5 3665c9e0fe663115bbd376f239c0cbaf
BLAKE2b-256 fe4ba4d8efe16b0239995c54de397056f6b4df73358b1d038d4856d216cad84e

See more details on using hashes here.

Provenance

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