Git Product home page Git Product logo

Comments (8)

poletti-marco avatar poletti-marco commented on May 1, 2024 2

Hypodermic is also one of the runtime DI libraries, it's more similar to Wallaroo than to Fruit.
For example, if you forget to bind a type that's a compile-time error in Fruit (and Boost.DI) but it's a runtime error in Wallaroo and Hypodermic.

from fruit.

poletti-marco avatar poletti-marco commented on May 1, 2024

I will include a page comparing Fruit to other C++ DI libraries in the Fruit website, thanks for the idea.
I'll work on the 1.1.0 release first though, once that is released I was already planning some work on the documentation (i.e., in 1 month or so).
I'll keep this issue open until I add that page, so that you know when it's there.

The TL;DR version is that Wallaroo is a completely different beast (run-time DI) while Boost.DI is more similar to Fruit, but there are some differences in the features (some are Fruit-only, some Boost.DI-only) and in performance (I expect Fruit to have noticeably faster compile time and slightly faster run-time, but I need to write/run some benchmarks to have actual data on this).

from fruit.

qqibrow avatar qqibrow commented on May 1, 2024

Cool. That's very helpful. Thanks.

from fruit.

icnocop avatar icnocop commented on May 1, 2024

Thank you for Fruit.

I'm also interested in a comparison with hypodermic.

from fruit.

soroshsabz avatar soroshsabz commented on May 1, 2024

ITNOA

@poletti-marco thanks for information, and what about autowiring?

from fruit.

poletti-marco avatar poletti-marco commented on May 1, 2024

from fruit.

ruipacheco avatar ruipacheco commented on May 1, 2024

And what about Kangaru? Seems to be pretty complete: https://github.com/gracicot/kangaru/wiki

from fruit.

poletti-marco avatar poletti-marco commented on May 1, 2024

From a quick look at the documentation it also seems to be runtime DI, so using an approach similar to Wallaroo and Hypodermic.
That means that it won't be able to report many compile-time errors that Fruit (and Boost.DI) can report, like missing bindings.

They provide a debugging facility for 1 class of errors:
https://github.com/gracicot/kangaru/wiki/11.-Debugging

But you need to modify your code in order to use it.
So I imagine that even for the few classes of errors where it does fail at compile-time, the errors are not very readable until you change your code to use that.

Fruit (and Boost.DI) give you the guarantee that certain classes of errors are always detected at compile-time, so if your code builds you're sure they won't happen at runtime. E.g. missing bindings (both libraries) or binding dependency cycles (Fruit only).

from fruit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.