{"id":27876328,"url":"https://github.com/tinybiggames/vdrive","last_synced_at":"2025-05-05T02:47:25.840Z","repository":{"id":290206289,"uuid":"973691187","full_name":"tinyBigGAMES/VDrive","owner":"tinyBigGAMES","description":"VDrive is a lightweight Delphi library that gives your application its own personal virtual drive — a full filesystem that lives entirely in memory. No drivers. No installers. No files ever touch disk.","archived":false,"fork":false,"pushed_at":"2025-04-27T15:18:26.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-27T15:32:11.645Z","etag":null,"topics":["delphi","object-pascal","pascal","vfs-layer","virtual-drive","virtual-filesystem","virtual-folder","win64","windows-10","windows-11"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tinyBigGAMES.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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,"zenodo":null},"funding":{"github":"tinyBigGAMES","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-04-27T14:36:43.000Z","updated_at":"2025-04-27T15:18:30.000Z","dependencies_parsed_at":"2025-04-27T15:44:04.092Z","dependency_job_id":null,"html_url":"https://github.com/tinyBigGAMES/VDrive","commit_stats":null,"previous_names":["tinybiggames/vdrive"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinyBigGAMES%2FVDrive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinyBigGAMES%2FVDrive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinyBigGAMES%2FVDrive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinyBigGAMES%2FVDrive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tinyBigGAMES","download_url":"https://codeload.github.com/tinyBigGAMES/VDrive/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252429966,"owners_count":21746570,"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":["delphi","object-pascal","pascal","vfs-layer","virtual-drive","virtual-filesystem","virtual-folder","win64","windows-10","windows-11"],"created_at":"2025-05-05T02:47:25.051Z","updated_at":"2025-05-05T02:47:25.828Z","avatar_url":"https://github.com/tinyBigGAMES.png","language":"Pascal","readme":"![VDrive](media/vdrive.jpg)  \n[![Chat on Discord](https://img.shields.io/discord/754884471324672040?style=for-the-badge)](https://discord.gg/tPWjMwK)\n[![Follow on Bluesky](https://img.shields.io/badge/Bluesky-tinyBigGAMES-blue?style=for-the-badge\u0026logo=bluesky)](https://bsky.app/profile/tinybiggames.com)    \n\n**VDrive** is a lightweight, high-performance Delphi library that empowers your applications with their own private, fully virtualized filesystem — entirely in-memory, with **no drivers**, **no installers**, and **no filesystem footprint**. 🛡️\n\nIt exposes a simple and intuitive API:\n\n```pascal\nfunction vdPath(const AFilename: string): string;\n```\n\nGiven any filename, `vdPath` returns a special **virtual drive path** where you can seamlessly create, read, write, and manage files and folders **as if they existed on the real disk**.  \nFiles written to this virtual drive persist for the lifetime of your application and are completely invisible to the underlying operating system. 🧩\n\nWhen your application terminates, the entire virtual filesystem is automatically destroyed, leaving **no traces** behind. 🧹\n\n## 🎯 What You Can Do with VDrive\n\n- 📦 Package and load **DLLs** and **assets** hidden inside your EXE, without ever writing to disk.\n- 📄 Create and manage **temporary files**, **cache files**, **logs**, and **configuration data** entirely in memory.\n- 🔧 Access your virtual drive using **standard Delphi file I/O APIs** (`TFile`, `TStream`, `AssignFile`, etc.).\n- 🔐 **Secure** your runtime resources from tampering, antivirus false positives, and prying eyes.\n- 🧹 Eliminate filesystem clutter — no need to extract files or clean up temporary folders.\n\n**Anything you can do with the OS filesystem, you can do inside your app's private virtual drive.** 🚀\n\n## ✨ Key Features\n\n- **Simple API** — One function (`vdPath`) to access your virtual drive.\n- **Fully In-Memory** — Files never touch the physical disk.\n- **Standard Compatibility** — Works transparently with existing Delphi file handling routines.\n- **Secure \u0026 Hidden** — Protects your embedded resources and runtime data.\n- **Zero External Dependencies** — Pure native Delphi, no third-party libraries.\n- **Tiny Footprint** — Minimal overhead, blazing fast performance.\n- **Automatic Cleanup** — Virtual filesystem vanishes when your app exits.\n- **User-Mode Only** — No drivers, no admin rights, no OS modifications.\n\n## 🔥 Example: Loading a DLL from a `TResourceStream` into VDrive\n\n```pascal\nuses\n  System.Classes, System.SysUtils, System.IOUtils, Winapi.Windows, VDrive;\n\nprocedure LoadDllFromResource;\nvar\n  LResStream: TResourceStream;\n  LPath: string;\nbegin\n  // Generate a virtual path for the DLL\n  LPath := vdPath('myhidden.dll');\n\n  // Load the DLL from an embedded resource into the virtual drive\n  LResStream := TResourceStream.Create(HInstance, 'MYDLL', RT_RCDATA);\n  try\n    LResStream.SaveToFile(LPath);\n  finally\n    LResStream.Free;\n  end;\n\n  // Load the DLL at runtime, directly from the virtual drive\n  if LoadLibrary(PChar(LPath)) = 0 then\n    RaiseLastOSError;\nend;\n```\n\n\u003e 💡 In this example, the DLL is embedded inside your application as a resource (`MYDLL`), saved virtually to VDrive, and loaded without ever touching disk storage.\n\n## 🛠️ Why Use VDrive?\n\n| 🧩 Challenge | 🚀 VDrive Solution |\n|:---|:---|\n| Need to extract temporary files securely | Store them in your private virtual drive |\n| Want to ship runtime DLLs/assets without exposing them | Embed and load them invisibly in memory |\n| Tired of cleaning up temp folders | Let VDrive auto-clean when your app closes |\n| Risk of antivirus false positives from temp file writes | Eliminate disk I/O entirely |\n| Need easy integration into existing code | Works seamlessly with standard file operations |\n\n## 💼 Typical Use Cases\n\n- 📦 Embedding and loading **DLLs** or **plugins** without filesystem exposure\n- 🚀 Building **self-contained apps** with in-memory assets\n- 🔒 Securely managing **temporary data** and **runtime configuration**\n- 🧳 Building **portable applications** that leave no traces behind\n- ⚡ Improving **startup performance** by avoiding disk I/O\n\n\n\u003e 🚧️ **This repository is currently under construction.**\n\u003e  \n\u003e VDrive is actively being developed. Features, APIs, and internal structure are subject to change.  \n\u003e  \n\u003e Contributions, feedback, and issue reports are welcome as the project evolves.\n\n\n## 🛠️ Support and Resources\n\n- 🐞 **Report issues** via the [Issue Tracker](https://github.com/tinyBigGAMES/VDrive/issues).\n- 💬 **Engage in discussions** on the [Forum](https://github.com/tinyBigGAMES/VDrive/discussions) and [Discord](https://discord.gg/tPWjMwK).\n- 📚 **Learn more** at [Learn Delphi](https://learndelphi.org).\n\n## 🤝 Contributing  \n\nContributions to **✨ VDrive** are highly encouraged! 🌟  \n- 🐛 **Report Issues:** Submit issues if you encounter bugs or need help.  \n- 💡 **Suggest Features:** Share your ideas to make **VDrive** even better.  \n- 🔧 **Create Pull Requests:** Help expand the capabilities and robustness of the library.  \n\nYour contributions make a difference! 🙌✨\n\n#### Contributors 👥🤝\n\u003cbr/\u003e\n\n\u003ca href=\"https://github.com/tinyBigGAMES/VDrive/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=tinyBigGAMES/VDrive\u0026max=250\u0026columns=20\u0026anon=1\" /\u003e\n\u003c/a\u003e\n\n## 📜 Licensing\n\n**VDrive** is distributed under the **🆓 BSD-3-Clause License**, allowing for redistribution and use in both source and binary forms, with or without modification, under specific conditions.  \nSee the [📜 LICENSE](https://github.com/tinyBigGAMES/VDrive?tab=BSD-3-Clause-1-ov-file#BSD-3-Clause-1-ov-file) file for more details.\n\n---\n\n🚀 Take full control of your Delphi app’s resources with **VDrive** — **Clean. Secure. Invisible. Fast.**\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"media/delphi.png\" alt=\"Delphi\"\u003e\n\u003c/p\u003e\n\u003ch5 align=\"center\"\u003e\n  \nMade with ❤️ in Delphi  \n","funding_links":["https://github.com/sponsors/tinyBigGAMES"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftinybiggames%2Fvdrive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftinybiggames%2Fvdrive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftinybiggames%2Fvdrive/lists"}