{"id":15047754,"url":"https://github.com/baulk/baulk","last_synced_at":"2025-05-16T03:05:39.640Z","repository":{"id":37616261,"uuid":"245962600","full_name":"baulk/baulk","owner":"baulk","description":"baulk - Minimal Package Manager for Windows","archived":false,"fork":false,"pushed_at":"2025-03-30T11:07:09.000Z","size":20924,"stargazers_count":389,"open_issues_count":1,"forks_count":36,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-08T13:12:46.802Z","etag":null,"topics":["baulk","baulk-bucket","bucket","cpp20","installer","interesting","package-management","portable","software-management","windows"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baulk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2020-03-09T06:44:10.000Z","updated_at":"2025-04-07T17:24:21.000Z","dependencies_parsed_at":"2024-02-18T00:29:10.637Z","dependency_job_id":"8b8c753a-cfe0-4f21-a268-14a17390e510","html_url":"https://github.com/baulk/baulk","commit_stats":{"total_commits":1108,"total_committers":5,"mean_commits":221.6,"dds":0.008122743682310474,"last_synced_commit":"7c8728dc32f07d7bfbad2922cda99d27527a7c10"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baulk%2Fbaulk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baulk%2Fbaulk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baulk%2Fbaulk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baulk%2Fbaulk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baulk","download_url":"https://codeload.github.com/baulk/baulk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254459088,"owners_count":22074605,"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":["baulk","baulk-bucket","bucket","cpp20","installer","interesting","package-management","portable","software-management","windows"],"created_at":"2024-09-24T21:04:11.759Z","updated_at":"2025-05-16T03:05:34.628Z","avatar_url":"https://github.com/baulk.png","language":"C","readme":"# Baulk - Minimal Package Manager for Windows\n\n[![license badge](https://img.shields.io/github/license/baulk/baulk.svg)](LICENSE)\n[![Master Branch Status](https://github.com/baulk/baulk/workflows/BaulkCI/badge.svg)](https://github.com/baulk/baulk/actions)\n[![Latest Release Downloads](https://img.shields.io/github/downloads/baulk/baulk/latest/total.svg)](https://github.com/baulk/baulk/releases/latest)\n[![Total Downloads](https://img.shields.io/github/downloads/baulk/baulk/total.svg)](https://github.com/baulk/baulk/releases)\n[![Version](https://img.shields.io/github/v/release/baulk/baulk)](https://github.com/baulk/baulk/releases/latest)\n[![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu)\n\n\n[简体中文](./README.zh-CN.md)\n\nBaulk is a minimalist, portable package manager for Windows. \n\n## Why Baulk\n\nBaulk was originally born to solve the inefficiency of the package manager command `devi` of [Clangbuilder](https://github.com/fstudio/clangbuilder), and `devi` is based on Powershell, and the poor performance is self-evident. \n\nIn May 2020, when Microsoft announced the Windows Package Manager Preview, Baulk had been in development for several months. It did not mean that winget appeared, and similar tools would not develop. In addition, Baulk is better than package managers such as winget/scoop in terms of portability, isolation, virtual environment, and zero dependencies on tools. These are the reasons for its existence. \n\nFeatures\n+  Core feature is of course the package management function, which is portable and free of installation. All packages, whether msi/exe or other archives, will be decompressed by Baulk to the root directory of the package itself. \n+  Environment isolation and virtual environment \n    +  All packages have their own directory, and the invocation of the program in the package is initiated through its launcher or symbolic link, and the environment variables do not interfere or affect. \n    +  There are different major versions of the same software, and different distributions can be switched through venv, such as openjdk/msjdk. \n+  Excellent package extraction experience: Baulk itself provides decompression capabilities in zip/tar and other formats, supports automatic detection of filename encoding, and avoids garbled filenames caused by CodePage. \n    +  Baulk also provides baulk extract/unzip/untar commands for users to use baulk's decompression function in other scenarios.\n    +  Baulk also provides Unscrew Extractor (unscrew) a minimalist graphical decompression tool that can be integrated into the right-click menu to provide the ability to decompress `tar.*` files with one click. \n+  Limited compatibility with scoop manifest (compatibility mode, inability to use baulk advanced features like environment isolation and virtual environments). \n+  Written in pure C++20 with superior performance.\n+  IntelliSense network settings when downloading packages.\n+  Supports updating buckets using github-archives or git.\n+  Baulk also provides the `baulk brand` command to detect operating system information.\n\n## Get Started\n\nWe can go to Github Release to download the latest version：[https://github.com/baulk/baulk/releases/latest](https://github.com/baulk/baulk/releases/latest), If in doubt, refer to the table below. \n\n|Installation Mode|x64|arm64|Remark|\n|---|---|---|---|\n|Completely Portable|`Baulk-${VERSION}-win-x64.zip`|`Baulk-${VERSION}-win-arm64.zip`|Unzip it to any directory and double-click baulk-terminal.exe (you can also create a shortcut for it)|\n|Installation without administrator rights|`BaulkUserSetup-x64.exe`|` BaulkUserSetup-arm64.exe`|Double click to run the installer|\n|Install with administrator privileges|`BaulkSetup-x64.exe`|`BaulkSetup-arm64.exe`|Double click to run the installer|\n|Experimental Experience Appx|`Baulk-x64.appx`|`Baulk-arm64.appx`|`baulk version \u003e 4.0`|\n\n\nOnce installed you can experience Baulk:\n\n```powershell\n# Install any packages you need\n# baulk i neovim curl wget ripgrep belautils\nbaulk install neovim curl wget ripgrep belautils\n# Now you can run commands like curl in Windows Terminal \ncurl -V\n# update metadata (bucket)\n# baulk u --\u003e baulk update \u0026\u0026 baulk upgrade\nbaulk update\n# upgrade package\nbaulk upgrade\n# uninstall package\n# baulk r wget\nbaulk uninstall wget\n```\n\nLook, it's so simple! \n\n![](./docs/images/getstarted.png)\n\nSearch package:\n\n![](./docs/images/baulksearch.png)\n\nIntegration into Windows Terminal (shell replacement)：\n\n![](./docs/images/onterminal.png)\n\n## Changelog\n\n[Changelog](./docs/changelog.md)\n\n## Baulk tools usage\n\nUsually you can run `baulk -h` to see help for commands (other commands are also `-h`), you can also see：[Detailed Help](./docs/help.md)\n\n## Advanced Experience with Baulk\n\n## Other Baulk Tools\n\n[Barrels](https://github.com/baulk/barrels) - Baulk environment dock (Windows 11 22H2 or Later)\n\n![](./docs/images/barrels.png)\n\n## Build Baulk\n\n+  Visual Studio 2022 (17.2 or later)\n+  Windows SDK 10.0.22000.0\n+  CMake 3.22.0 or Later\n\n```ps\ngit clone https://github.com/baulk/baulk.git\ncd baulk\nmkdir build\ncd build\ncmake -GNinja ..\nninja all\n```\n\n## Article\n\n[《Baulk - 开发一个简单的包管理工具历程》](https://forcemz.net/toolset/2020/07/18/Baulk/)\n\n## Thanks\n\nBaulk depends many license-friendly open source projects, I would like to express my sincere gratitude. \n\n+   [Bela - Modern C++ development experience](https://github.com/fcharlie/bela.git)\n+   [Ppmd - Extract `ZIP-Ppmd`](https://www.7-zip.org/sdk.html)\n+   [Brotli - Extract `tar.br` and `ZIP-Brotli`](https://github.com/google/brotli)\n+   [bzip2 - Extract `tar.bz` and `ZIP-bzip2`](https://sourceware.org/bzip2/)\n+   [Compact Encoding Detection - zip non-UTF-8 file name encoding detection](https://github.com/google/compact_enc_det)\n+   [zlib-ng - Extract `tar.gz` and `ZIP-deflate`](https://github.com/zlib-ng/zlib-ng)\n+   [zlib (deflate64) - Extract `ZIP-deflate64`](https://github.com/madler/zlib/tree/master/contrib/infback9)\n+   [liblzma - Extract `tar.xz` and `ZIP-xz`](https://tukaani.org/xz/)\n+   [zstd - Extract `tar.zst` and `ZIP-zstd`](https://github.com/facebook/zstd)\n+   [mimalloc - mimalloc is a compact general purpose allocator with excellent performance](https://github.com/microsoft/mimalloc)\n\n\u003cdiv\u003eBaulk Icons made by \u003ca href=\"https://www.flaticon.com/authors/smashicons\" title=\"Smashicons\"\u003eSmashicons\u003c/a\u003e from \u003ca href=\"https://www.flaticon.com/\" title=\"Flaticon\"\u003ewww.flaticon.com\u003c/a\u003e\u003c/div\u003e\n\n\n","funding_links":[],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaulk%2Fbaulk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaulk%2Fbaulk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaulk%2Fbaulk/lists"}