I don't know how you would define: "mature implementation", but let's make a simple experiment
and run
cppcheck
over the core library source files (no driver, no external libraries,....)
of INDI and INDIGO
Cppcheck report - cppcheck report: Statistics
Back to summary
Top 10 files for error severity, total findings: 18
6 indibase/connectionplugins/ttybase.cpp
4 indibase/indidetector.cpp
3 lx/Lx.cpp
1 stream/encoder/rawencoder.cpp
1 lilxml.c
1 indicom.c
1 indibase/indilightboxinterface.cpp
1 indibase/indicontroller.cpp
Top 10 files for warning severity, total findings: 149
35 indibase/alignment/ConvexHull.h
28 indibase/inditelescope.cpp
22 webcam/v4l2_base.cpp
11 stream/jpegutils.c
8 indibase/indidome.cpp
4 stream/streammanager.cpp
4 indibase/indiusbdevice.cpp
4 indibase/baseclient.cpp
3 webcam/v4l2_decode/v4l2_builtin_decoder.cpp
2 webcam/v4l2_decode/v4l2_decode.cpp
Top 10 files for portability severity, total findings: 18
5 indibase/indidetector.cpp
2 stream/recorder/serrecorder.cpp
2 indibase/inditelescope.cpp
2 indibase/indiccd.cpp
1 stream/streammanager.cpp
1 indicom.c
1 indibase/indilogger.cpp
1 indibase/indidome.cpp
1 indibase/indiccdchip.cpp
1 indibase/baseclient.cpp
Top 10 files for performance severity, total findings: 76
55 indibase/alignment/TelescopeDirectionVectorSupportFunctions.h
7 indibase/alignment/BasicMathPlugin.cpp
2 indibase/defaultdevice.cpp
2 indibase/baseclientqt.cpp
2 indibase/baseclient.cpp
2 indibase/alignment/InMemoryDatabase.cpp
1 webcam/v4l2_decode/v4l2_decode.cpp
1 stream/streammanager.cpp
1 stream/recorder/recordermanager.cpp
1 stream/encoder/encodermanager.cpp
Top 10 files for style severity, total findings: 761
80 indibase/connectionplugins/connectionserial.h
70 indibase/connectionplugins/connectiontcp.h
52 webcam/v4l2_base.cpp
32 webcam/v4l2_decode/v4l2_builtin_decoder.h
31 indicom.c
27 stream/ccvt_misc.c
21 indibase/indidome.cpp
17 indibase/indidetector.cpp
17 indibase/defaultdevice.h
16 dsp/buffer.c
where,
libindi/libs>find . -type f | wc -l
173
And now let us repeat the experiment for INDIGO
Cppcheck report - cppcheck report: Statistics
Back to summary
Top 10 files for error severity, total findings: 1
1 indigo_ccd_driver.c
Top 10 files for warning severity, total findings: 9
8 indigo_client.c
1 indigo_server_tcp.c
Top 10 files for portability severity, total findings: 29
24 indigo_ccd_driver.c
3 indigo_bus.c
2 indigo_driver.c
where,
indigo/indigo_libs>find . -type f | wc -l
88
Now one can also divide by the number of code files to get the relative comparable result.
Using other metrics, such as e.g. what is the memory footprint, number of cycles starting from exposure to finally getting the FIT file delivered,
and you will see immediately which code is much "more mature"