Skip to main content

Exposes Windows bindings to the memory interface.

Project description

WinRAM

The honest Python-to-Windows interface

Introduction

WinRAM is a Python library dedicated to exposing raw access to the user-mode memory on Windows. Before you ask, no, i will not support backwards compatibility. It will be in line with bleeding edge standards. Follow or be left behind.

Features

  • Virtual Memory: No more of that kiddy Unix-inspired stuff from mmap, instead you call vm = VirtualMemory(addr, size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE) and watch as virtual memory gets handed down on a silver platter, wrapped in a buffer-supported memoryview.
  • Constants: Yes. Constants are supported, so you can do MEM_COMMIT instead of fiddling with bitflags.
  • Executable Memory: Yes, the widely recognisable RWX is supported. JIT developers would be happy, even though Python is slower than eight C++ hot loops.
  • Security: For security-obessesed people, W^X is supported (even though you have to flip flags like a maniac).

Comparison with mmap:

Scale is 0.4, because i said so.

  • Can allocate and free memory: Both support it. Boring, but useful.
  • Mark down specific regions of memory with flags: WinRAM supports it. mmap does not.
  • Query full regions: Another point to WinRAM.
  • Commit and decommit?: WinRAM again. mmap dropping the ball here.

Result:

WinRAM: 1.6

mmap: 0.4

Call for Action

CPython devs... Show love for NT. POSIX is too overrepresented.

Conclusion

Get this library if you are sick and tired of constant-less ctypes binding, sick of baby abstractions, and sick of mmap and POSIX culture as a whole.

Project details


Release history Release notifications | RSS feed

This version

1.5

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

winram-1.5.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

winram-1.5-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file winram-1.5.tar.gz.

File metadata

  • Download URL: winram-1.5.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for winram-1.5.tar.gz
Algorithm Hash digest
SHA256 863dbee155c55fab7dcf36d02188464b13e850b8b1e90a6dea770335272dd405
MD5 86ee479a5279a7d48ee1ce63745f2a87
BLAKE2b-256 dc115d656e3d51649e86e43b59a04fa9e1ce428512c505faf3d5e0be82b6ba5e

See more details on using hashes here.

File details

Details for the file winram-1.5-py3-none-any.whl.

File metadata

  • Download URL: winram-1.5-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for winram-1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e3d154e3042781ce7ea667431746c256636e65cb9276ebd6ec9865a2c2a39859
MD5 a1a1ecc7c59cd854a468f8f87761ff78
BLAKE2b-256 88bb156067e73445a4ea62bb1c400e880d16cab8a696b3a53a0a46aa2dc8a6cd

See more details on using hashes here.

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