3 ms·
Are there any modern "package manager" for C?
by Alifatisk 3y ago
Are there any modern "package manager" for C?
- deleted 3y ago[deleted]
- elitepleb 3y agohttps://xrepo.xmake.io https://xrepo.xmake.io does a decent job at that, but then you're stuck with a modern "build system" too
- humanrebar 3y agoConan, Spack, Nix, vcpkg, not to mention the OS specific ones. All are actively maintained. Modern means different things to different people, so I expect some people will still be looking for more answers.
- rgoulter 3y agoIn my head, these are: - Conan and vcpkg are probably the closest equivalent to other "language package managers" (e.g. Rust's cargo, or NodeJS's NPM). - Spack is typically used in HPC/Scientific Computing domain. - Nix (and Guix) are very powerful (system) package managers; these have enough nifty features that I'd call them "next-generation". Probably also for sufficiently complicated projects, it may be worth mentioning sophisticated build tools like Bazel (which I think manages dependencies in its own way).
- tgamblin 3y agoSpack dev here. Yep it's mainly used in HPC, but we'd love to see more folks using in other areas. There is windows support now (in addition to linux and macOS), which I think was a roadblock for many, and we have gotten some very interest from folks outside the HPC community, e.g. Replica.one, who hope to use it for a software-defined OS for embedded devices: https://www.youtube.com/watch?v=sMxNafpDhng https://www.youtube.com/watch?v=sMxNafpDhng (skip to ~12min for some discussion of Spack, Nix, Guix, and portage)
- bluGill 3y agoSee the other replies for options. Nobody wants a package manager for C in the C world. We want a package manager for whatever language we write our code in. A lot of C code is not a single C ecosystem, but coexists with other languages, even where it is all C we often have various code generation tools that look a lot like different languages that just happen to generate C, and sometimes we want to package the into for those tools not the C output.
- humanrebar 3y agoSame goes for C++. And successor languages will have limited reach as long as that don't get this requirement by, for instance, exclusively servicing a language specific packaging solution.