Most forms of dependency injection are abstractions over parameter passing. If you find yourself passing the same parameters into many different function calls there are ways of abstracting that, even in Zig. It’s not going to look like Spring and if that’s a dealbreaker for you, just use Spring, it’s a free country.
> most modern apps rely on some form of dependency injection
then plain parameter passing is not what I'm thinking of. Especially not manually doing that to hundreds or thousands of calls.