{"id":63789,"library":"etagere","title":"Etagere","description":"Dynamic 2D texture atlas allocation using the shelf packing algorithm.","status":"active","version":"0.3.0","language":"rust","source_language":null,"source_url":"https://github.com/nical/etagere","tags":["texture-atlas","2d","packing","gpu","graphics"],"install":[{"cmd":"# Cargo.toml\n[dependencies]\netagere = \"0.3.0\"","lang":"toml","label":"Cargo.toml"},{"cmd":"cargo add etagere","lang":"bash","label":"cargo add"}],"dependencies":[],"imports":[{"symbol":"AtlasAllocator","correct":"use etagere::AtlasAllocator;"}],"quickstart":{"code":"use etagere::AtlasAllocator;\n\nlet mut allocator = AtlasAllocator::new(etagere::size2(1024, 1024));\nlet allocation = allocator.allocate(etagere::size2(100, 100)).unwrap();\nprintln!(\"Allocated rectangle at {:?}\", allocation.rectangle);","lang":"rust","description":"Creates a 1024x1024 atlas and allocates a 100x100 rectangle."},"warnings":[],"env_vars":null,"search_vec":"'2d':3,15 'algorithm':11 'alloc':6 'atlas':5,14 'dynam':2 'etager':1 'gpu':17 'graphic':18 'pack':10,16 'shelf':9 'textur':4,13 'texture-atla':12 'use':7","created_at":"2026-06-17T16:48:05.111135+00:00","updated_at":"2026-06-17T16:48:05.111135+00:00","problems":[],"ecosystem":"crates","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/nical/etagere","github":"https://github.com/nical/etagere","docs":"https://docs.rs/etagere/","changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["utility"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-12-14","install_tag":null}}