{"id":22911261,"url":"https://github.com/rust-osdev/vga","last_synced_at":"2026-03-16T10:38:58.656Z","repository":{"id":43857899,"uuid":"246864075","full_name":"rust-osdev/vga","owner":"rust-osdev","description":"Library to program vga hardware.","archived":false,"fork":false,"pushed_at":"2023-06-12T22:21:28.000Z","size":189,"stargazers_count":58,"open_issues_count":6,"forks_count":15,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-11T04:26:19.919Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rust-osdev.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-12T15:07:11.000Z","updated_at":"2025-03-22T15:59:42.000Z","dependencies_parsed_at":"2025-01-03T01:18:26.053Z","dependency_job_id":"682a85ed-5a4e-49e9-95cf-d38310dd7ccf","html_url":"https://github.com/rust-osdev/vga","commit_stats":{"total_commits":133,"total_committers":10,"mean_commits":13.3,"dds":"0.18045112781954886","last_synced_commit":"b91c2286cbd06ac4b618420037e1951975518877"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rust-osdev/vga","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-osdev%2Fvga","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-osdev%2Fvga/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-osdev%2Fvga/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-osdev%2Fvga/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-osdev","download_url":"https://codeload.github.com/rust-osdev/vga/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-osdev%2Fvga/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262586115,"owners_count":23332786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-14T04:15:55.750Z","updated_at":"2026-03-16T10:38:58.625Z","avatar_url":"https://github.com/rust-osdev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://github.com/rust-osdev/vga/workflows/Build/badge.svg)](https://github.com/rust-osdev/vga/actions?query=workflow%3ABuild) [![Docs.rs Badge](https://docs.rs/vga/badge.svg)](https://docs.rs/vga/)\n\n# vga\nThis crate provides vga specific functions, data structures,\nand access to various registers.\n\nMemory addresses `0xA0000 -\u003e 0xBFFFF` must be readable and writeable\nthis crate to work properly.\n\n**Note: This crate is currently experimental and subject to change since it's in active development.**\n\n## Text Mode\n```rust\nuse vga::colors::{Color16, TextModeColor};\nuse vga::writers::{ScreenCharacter, TextWriter, Text80x25};\n\nlet text_mode = Text80x25::new();\nlet color = TextModeColor::new(Color16::Yellow, Color16::Black);\nlet screen_character = ScreenCharacter::new(b'T', color);\n\ntext_mode.set_mode();\ntext_mode.clear_screen();\ntext_mode.write_character(0, 0, screen_character);\n```\n\n## Graphics Mode\n```rust\nuse vga::colors::Color16;\nuse vga::writers::{Graphics640x480x16, GraphicsWriter};\n\nlet mode = Graphics640x480x16::new();\nmode.set_mode();\nmode.clear_screen(Color16::Black);\nmode.draw_line((80, 60), (80, 420), Color16::White);\nmode.draw_line((80, 60), (540, 60), Color16::White);\nmode.draw_line((80, 420), (540, 420), Color16::White);\nmode.draw_line((540, 420), (540, 60), Color16::White);\nmode.draw_line((80, 90), (540, 90), Color16::White);\nfor (offset, character) in \"Hello World!\".chars().enumerate() {\n    mode.draw_character(270 + offset * 8, 72, character, Color16::White)\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-osdev%2Fvga","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-osdev%2Fvga","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-osdev%2Fvga/lists"}