lgpu 0.1.0

Ultra-lightweight, bindless-first cross-platform GPU abstraction
Documentation
# lgpu (Lean GPU)

An ultra-lightweight, bindless-first cross-platform GPU abstraction for Rust.

Designed for sub-second compile times, minimal binary footprint, and maximum performance.

## Key Highlights

- **Bindless by Design**: Unbounded descriptor indexing (`VK_EXT_descriptor_indexing`) for buffers, sampled textures, storage images, and samplers.
- **Pure Dynamic Rendering**: Native Vulkan 1.3 dynamic rendering without legacy `VkRenderPass` or `VkFramebuffer` boilerplate.
- **Fine-Grained Synchronization**: Native timeline semaphores and asynchronous multi-queue batch submission.
- **Cross-Platform Native**: Tested across Linux (Wayland, X11, Headless), Windows (Win32), and macOS/iOS (via MoltenVK).
- **Zero Mock Policy**: 100% real hardware execution with zero simulated RAM mocks or dummy stubs.

## Quick Example

```rust,no_run
use lgpu::{BufferDesc, BufferUsage, Instance, MemoryLocation};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let instance = Instance::new()?;
    let adapters = instance.enumerate_adapters()?;
    let (device, queue) = adapters[0].request_device(&instance)?;

    let desc = BufferDesc {
        label: Some("ComputeBuffer"),
        size: 256,
        usage: BufferUsage::STORAGE | BufferUsage::TRANSFER_SRC | BufferUsage::TRANSFER_DST,
        memory_location: MemoryLocation::CpuToGpu,
    };

    let buffer = device.create_buffer_init_slice(&desc, &[1.0f32, 2.0, 3.0, 4.0])?;
    println!("Buffer allocated with bindless ID: {:?}", buffer.id());

    Ok(())
}
```

For full documentation and examples, visit the [GitHub Repository](https://github.com/kuntal-devrat/lgpu).