Metadata-Version: 2.4
Name: WinRAM
Version: 1.5
Summary: Exposes Windows bindings to the memory interface.
Author-email: WCG847 <heelmods@gmail.com>
License-Expression: GPL-3.0-or-later
Keywords: WINDOWS,WIN32,WINNT,MEMORY,VIRTUALALLOC
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: Free Threading :: 4 - Resilient
Classifier: Intended Audience :: Developers
Classifier: Topic :: System
Classifier: Operating System :: Microsoft :: Windows :: Windows 11
Classifier: Typing :: Typed
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.14
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Dynamic: license-file

# 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.
