hyperkit
devenv
hyperkit | devenv | |
---|---|---|
10 | 90 | |
3,574 | 3,444 | |
0.2% | 6.5% | |
0.0 | 9.8 | |
about 1 year ago | 8 days ago | |
C | Nix | |
BSD 2-clause "Simplified" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hyperkit
- HyperKit on Apple Silicon
-
Trying Finch and introduce containerd
The author uses a Mac and uses Docker Desktop or colima x Docker CLI to realize a Docker development environment. Dcoker Desktop uses an internal HyperKit (macOS hypervisor) to launch a Linux VM and run dockerd in it. Docker Desktop is based on Lima, and it generates Lima configuration files, and it is used to run Linux.
- LXD containers on macOS at near-native speeds
-
Docker on OpenBSD?
Sorry, I was misinformed. It seems MacOS still does use a tool called hyperkit to run a (presumably linux) VM as a backend for docker. I thought it was using something similar to jails.
-
New to ARM64 processors world
You might try using HyperKit as the hypervisor with Kubernetes. It uses Apple's own hypervisor. Minikube, or rather docker, supports it. I would go with minicube as you can start and stop it as needed with ease.
-
Anyone know how to pass a USB device from M1 mac to Ubuntu container?
I've been reading many forum posts: moby/hyperkit#149 docker/for-mac#900
-
A modern toolkit to start working with container images on macOS that meets your needs without requiring a Docker Daemon or even Docker Desktop
What’s the magic behind docker working on macOS?. The answer is virtualization accomplished by the moby/hyperkit hypervisor (AFAIK), a toolkit for embedding hypervisor capabilities in your application, which means that dockerd works in a VM virtualized by the hyperkit. Why I’m telling you this is once you decide to work with containerd on your macOS environment to discover capabilities and more adapt to it because we assume you use containerd in your Kubernetes environment as a default container runtime, you had to have the same virtualization technology under the hood to let containerd working on macOS. Also, you need to have some client tooling to interact with containerd by keeping simplicity and usability in mind.
- Windows PC vs Mac?
-
Chromium Browser
Docker on Mac is based on Hyperkit which is a lightweight VM. https://github.com/moby/hyperkit Crostini is running in a full KVM instance. You challenged me about the Termina shell. Type it in and see if I'm right. No need to debate this anymore when you can verify for yourself.
-
Docker is not allowed for „big“ companies anymore
Docker Desktop doesn't use virtualbox behind the scenes. It uses hyperkit.
devenv
-
Install Asdf: One Runtime Manager to Rule All Dev Environments
Sounds like nix using devenv[1] also would solve this problem.
https://devenv.sh/
-
Show HN: Is_ready – Wait for many services to become available – 0 Dependencies
It works on MacOS/Windows, unlike systemd. Therefore it's well suited for development environment setups for polyglot teams.
https://devenv.sh/ is one example that uses it to do just that.
-
Fast, Declarative, Reproduble and Composable Developer Environments Using Nix
I gave devenv multiple tries, and I am sorry to say there are multiple annoying issues that forced me to give up every time.
Some of these 200+ issues are unsolved for a fairly long time.
https://github.com/cachix/devenv/issues
-
Nix – A One Pager
Software developers often want to customize:
1. their home environments: for packages (some reach for brew on MacOS) and configurations (dotfiles, and some reach for stow).
2. their development shells: for build dependencies (compilers, SDKs, libraries), tools (LSP, linters, formatters, debuggers), and services (runtime, database). Some reach for devcontainers here.
3. or even their operating systems: for development, for CI, for deployment, or for personal use.
Nix provision all of the above in the same language, with Nixpkgs, NixOS, home-manager, and devShells such as https://devenv.sh/. What's more, Nix is (https://nixos.org/):
- reproducible: what works on your dev machine also works in CI in prod,
- declarative: you version control and review your configurations and infrastructure as code, at a reasonable level of abstraction,
- reliable: all changes are atomic with easy roll back.
-
Show HN: Lapdev, a new open-source remote dev environment management software
https://devenv.sh/ and nix in general are great for setting up dev environments.
-
Show HN: Flox 1.0 – Open-source dev env as code with Nix
> but worried that the development is not moving forward
There is an open v1.0 PR: https://github.com/cachix/devenv/pull/1005
-
What's the Next Vagrant?
2) A way to run services apps depend on (databases, job runners, cache etc).
I am going to suggest one of the Nix based tools that do those things:
- https://devenv.sh/ (I use this at work)
-
Ask HN: How can I make local dev with containers hurt less?
Yup, I haven’t tried it but there is https://devenv.sh which is built on top of nix and makes it simple.
-
Flakes aren't real and cannot hurt you: using Nix flakes the non-flake way
Although Guix reads better than Nix (after all, it's Lisp), I found the support and resources available for learning severely lacking.
Plus, you have to jump through hoops to install non-free software, which goes against the ethos of Guix anyway.
IMHO, Nix is clearly "the winner" here and we'll see more and more adoption as it improves. Lots of folks are doing exciting work (see https://determinate.systems/, https://devenv.sh/, https://flakehub.com/). And the scale and organization around nixpkgs is damn impressive.
-
NixOS has one fatal flaw
I don't think you can ever get Nix as simple as PNPM, simply because native libraries are sometimes annoying, need to be configured at build time to a greater degree and because the problem space it attacks is so much larger than PNPM, which only deals with the JS/Node.js ecosystem.
However, I do think that there exist reasonable levels of abstraction that sacrifice some expressive power for simplicity and such systems could maybe expose a PNPM-like CLI. One example that comes to mind is devenv.nix [1]. While it doesn't yet have a CLI, its configuration file is YAML and relatively simple. I think there's more to be done in this space and I hope for tools that are easier to grasp in the future.
> Nix package files evaluate down to configuration for the Nix package manager, but I haven’t ever seen a good explanation for the basic essentials underneath all the abstraction. Every guide I’ve learned from and all the package defs I’ve read seem to cargo cult many layers of mysterious config composing config. Without easy to learn essentials it’s difficult to grok the system as a whole.
To me it sounds like the essential that you're referring to is the 'derivation' primitive, which is almost always hidden behind the mkDerivation abstraction from nixpkgs. This [2] blog post is an exploration of what exactly that means.
I'd also love for the documentation situation to be much better, in particular in terms of official, curated resources. But I'm not convinced that you actually need to know the difference between derivation and mkDerivation to make effective use of Nix, because in practice you would always use the latter. That said, mkDerivation and the whole of nixpkgs is essentially a huge DSL (I believe this is what you meant when you said 'config composing config') that you do need to know and is woefully underdocumented.
> I would love to adopt Nix for developer tooling for Notion’s engineers, but today it’s about infinity times easier to work around the limitations mentioned of Docker+Ubuntu+NPM than to work around the limitations of Nix.
One approach I have taken to is to specify the environment in Nix, but then generate Docker devcontainers from it, so most people don't come into contact with Nix if they don't want to.
[1] https://devenv.sh
[2] https://ianthehenry.com/posts/how-to-learn-nix/derivations/
What are some alternatives?
lima - Linux virtual machines, with a focus on running containers
devbox - Instant, easy, and predictable development environments
for-mac - Bug reports for Docker Desktop for Mac
nix-direnv - A fast, persistent use_nix/use_flake implementation for direnv [maintainer=@Mic92 / @bbenne10]
runj - runj is an experimental, proof-of-concept OCI-compatible runtime for FreeBSD jails.
direnv - unclutter your .profile
bravetools - A tool to build, deploy, and release any environment using System Containers.
devshell - Per project developer environments
buildkit - concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit
rembg - Rembg is a tool to remove images background
colima - Container runtimes on macOS (and Linux) with minimal setup
nix - Nix, the purely functional package manager