{"id":16724326,"url":"https://github.com/badboy/bygge","last_synced_at":"2025-10-11T08:04:33.676Z","repository":{"id":62438659,"uuid":"272086572","full_name":"badboy/bygge","owner":"badboy","description":"Build your project.","archived":false,"fork":false,"pushed_at":"2020-06-20T22:30:07.000Z","size":42,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T06:22:35.050Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":false,"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/badboy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-13T21:12:28.000Z","updated_at":"2023-07-09T02:22:53.000Z","dependencies_parsed_at":"2022-11-01T21:48:33.627Z","dependency_job_id":null,"html_url":"https://github.com/badboy/bygge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Fbygge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Fbygge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Fbygge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Fbygge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/badboy","download_url":"https://codeload.github.com/badboy/bygge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248199080,"owners_count":21063641,"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-10-12T22:44:50.229Z","updated_at":"2025-10-11T08:04:28.654Z","avatar_url":"https://github.com/badboy.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bygge - Build your project.\n\nWhat if you could build a Rust project without Cargo[^1]?\nBygge can.\n\n\u003e **bygge** [v]. (Danish, Norwegian Bokmål)\n\u003e\n\u003e 1. to build, construct,\n\u003e 2. to craft\n\u003e\n\u003e (via [Wiktionary])\n\n[^1]: `bygge` still requires cargo for fetching dependencies.\n\n## Why?\n\nI wanted to understand all the work cargo does, without needing to dissect cargo itself.\nI followed the output of `cargo build --verbose` and turned that into simple build instructions.\n\nAdditionally I've been reading about build systems, such as [Ninja][ninja-essay]\nand was intrigued to rebuild that. I haven't done that yet, but at least I'm using Ninja.\n\n## What it does\n\n`bygge create` generates a Ninja build configuration (in `build.ninja` by default),\nlisting all the targets a binary crate depends on, including all crate dependencies.\n`ninja` can then take this configuration and assemble the final binary.\nThe result should be about the same as an invocation of `cargo build`.\n\n## What it doesn't\n\n`bygge` is and never will be an alternative to Cargo.\n\nCargo is a full-fledged build system, aware of different build targets, allowing to enable features per dependency, easily cross-compile to different targets and run the built programs as well as tests and generate documentation.\n\n`bygge` ... builds.\n\n## Features\n\n* Builds itself\n* Builds cargo dependencies as listed in a project's Cargo.toml\n* Can build only crates with a single binary target\n* Runs on (at least) macOS and Linux\n* No support for `build.rs` files\n* No support for linking non-Rust libraries\n\n## Requirements\n\n* [Rust]\n* [Ninja] v1.10.0\n\n## Build `bygge`\n\n`bygge` can create a Ninja build configuration to build itself.\nBut first you need a compiled `bygge`.\nUse the bundled pre-generated configuration for that:\n\n```\nninja -f manual.ninja\n```\n\nThen create the default build configuration and build:\n\n```\nbuild/bygge create\nbuild/bygge build\n```\n\n## License\n\nbygge is distributed under the terms of both the MIT license and the Apache License (Version 2.0).\n\nSee [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details.\n\n[Rust]: https://www.rust-lang.org/\n[ninja]: https://ninja-build.org/\n[wiktionary]: https://en.wiktionary.org/wiki/bygge\n[ninja-essay]: https://www.aosabook.org/en/posa/ninja.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadboy%2Fbygge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbadboy%2Fbygge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadboy%2Fbygge/lists"}