Boost MySQL Review Is In Progress

Richard Hodges via Boost-announce <[email protected]> Sat, 14 May 2022 10:58:29 +0200
Newsgroups gmane.comp.lib.boost.announce
Message-ID <CALvx3hYe3DW8POaFb-k5smQpGzL6S6UNi5bMy8Gxfc5sW70C0w__23463.2928551704$1652527111$gmane$org@mail.gmail.com>
--===============7990853922648755795==
Content-Type: multipart/alternative; boundary="0000000000004ea76805def4ff2c"

--0000000000004ea76805def4ff2c
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Dear All,

We've had a good response for calls to review this much anticipated
library, and there is a lot of interest on Reddit:
https://www.reddit.com/r/cpp/comments/unik91/acceptance_review_for_boostmys=
ql_has_just_started/
.

In general the public perception of utility libraries like this in Boost
seems popular, and Boost's emphasis on quality is often mentioned.

If you are able, I would be more than grateful if you could take a few
hours over this delightful weekend to offer a review. The more eyes on this
project the better, as if it is successful, it will no doubt prompt
submission of similar libraries targeting other popular database and
messaging systems.

The Boost formal review of the MySQL library started on May 10th, 2022 and
will conclude on May 19th, 2022 (inclusive) - In fact, I am able to accept
submissions up until the (GMT) morning of May 20th as I'll be traveling on
May19th.

The library is authored by Rub=C3=A9n P=C3=A9rez Hidalgo (@anarthal in the =
CppLang
slack).

Documentation: https://anarthal.github.io/mysql/index.html
Source: https://github.com/anarthal/mysql/

The library is built on the bedrock of Boost.Asio and provides both
synchronous and asynchronous client connectors for the MySQL database
system.

Boost.MySQL is written from the ground up, implementing the entire protocol
with no external dependencies beyond the Boost library.
It is compatible with MariaDB.

Connectivity options include TCP, SSL and Unix Sockets.

For async interfaces, examples in the documentation demonstrate full
compatibility with all Asio completion handler styles, including:

Callbacks:-
https://anarthal.github.io/mysql/mysql/examples/query_async_callbacks.html

Futures :-
https://anarthal.github.io/mysql/mysql/examples/query_async_futures.html

Boost.Coroutine :-
https://anarthal.github.io/mysql/mysql/examples/query_async_coroutines.html

C++20 Coroutines :-
https://anarthal.github.io/mysql/mysql/examples/query_async_coroutinescpp20=
.html

Rub=C3=A9n has also implemented the Asio protocols for deducing default
completion token types :-
https://anarthal.github.io/mysql/mysql/examples/default_completion_tokens.h=
tml

Reviewing a database connector in depth will require setting up an instance
of a MySQL database. Fortunately most (all?) Linux distributions carry a
MySQL and/or MariaDB package. MySQL community edition is available for
download on all platforms here:
https://dev.mysql.com/downloads/

Rub=C3=A9n has spent quite some time in order to bring us this library
candidate. The development process has no doubt been a journey of discovery
into Asio, its concepts and inner workings. I am sure he has become a fount
of knowledge along the way.

From a personal perspective, I was very happy to be asked to manage this
review. I hope it will be the first of many more reviews of libraries that
tackle business connectivity problems without further dependencies beyond
Boost, arguably one of the most trusted foundation libraries available.

Please provide in your review information you think is valuable to
understand your choice to ACCEPT or REJECT including Describe as a
Boost library. Please be explicit about your decision (ACCEPT or REJECT).

Some other questions you might want to consider answering:

  - Will the library bring additional out-of-the-box utility to Boost?
  - What is your evaluation of the implementation?
  - What is your evaluation of the documentation?
  - Will the choice of API abstraction model ease the development of
software that must talk to a MySQL database?
  - Are there any immediate improvements that could be made after
acceptance, if acceptance should happen?
  - Did you try to use the library? With which compiler(s)? Did you
    have any problems?
  - How much effort did you put into your evaluation? A glance? A quick
    reading? In-depth study?
  - Are you knowledgeable about the problem domain?

More information about the Boost Formal Review Process can be found
at: http://www.boost.org/community/reviews.html

The review is open to anyone who is prepared to put in the work of
evaluating and reviewing the library. Prior experience in
contributing to Boost reviews is not a requirement.

Thank you for your efforts in the Boost community. They are very much
appreciated.

Richard Hodges
- review manager of the proposed Boost.MySQL library

Rub=C3=A9n is often available on CppLang Slack and of course by email shoul=
d you
require any clarification not covered by the documentation, as am I.


--=20
Richard Hodges
[email protected]
office: +44 2032 898 513
home: +376 861 195
mobile: +376 380 212

--0000000000004ea76805def4ff2c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Dear All,</div><div><br>We&#39;ve had a good response=
 for calls to review=C2=A0this much anticipated library, and there is a lot=
 of interest on Reddit:=C2=A0<a href=3D"https://www.reddit.com/r/cpp/commen=
ts/unik91/acceptance_review_for_boostmysql_has_just_started/">https://www.r=
eddit.com/r/cpp/comments/unik91/acceptance_review_for_boostmysql_has_just_s=
tarted/</a>.<br><br></div><div>In general the public perception of utility =
libraries=C2=A0like this in Boost seems popular, and Boost&#39;s emphasis=
=C2=A0on quality is often mentioned.</div><div><br></div><div>If you are ab=
le, I would be more than grateful if you could take a few hours over this d=
elightful weekend to offer a review. The more eyes on this project the bett=
er, as if it is successful, it will no doubt prompt submission of similar l=
ibraries targeting other popular database and messaging systems.</div><div>=
<br></div>The=C2=A0Boost=C2=A0formal=C2=A0review=C2=A0of the MySQL library =
started on May 10th, 2022 and will conclude on May 19th, 2022 (inclusive) -=
 In fact, I am able to accept submissions up until the (GMT) morning of May=
 20th as I&#39;ll be traveling on May19th.<br><br>The library is authored b=
y Rub=C3=A9n P=C3=A9rez Hidalgo (@anarthal in the CppLang slack).<br><br>Do=
cumentation:=C2=A0<a href=3D"https://anarthal.github.io/mysql/index.html" t=
arget=3D"_blank">https://anarthal.github.io/mysql/index.html</a><br>Source:=
=C2=A0<a href=3D"https://github.com/anarthal/mysql/" target=3D"_blank">http=
s://github.com/anarthal/mysql/</a><br><br>The library is built on the bedro=
ck of Boost.Asio and provides both synchronous and asynchronous client conn=
ectors for the MySQL database system.<div><br></div><div>Boost.MySQL is wri=
tten from the ground up, implementing the entire protocol with no external =
dependencies beyond the Boost library.=C2=A0</div><div>It is compatible wit=
h MariaDB.<br><br>Connectivity options include TCP, SSL and Unix Sockets.</=
div><br>For async interfaces, examples in the documentation demonstrate ful=
l compatibility with all Asio completion handler styles, including:<div><br=
></div><div>Callbacks:-=C2=A0</div><div><a href=3D"https://anarthal.github.=
io/mysql/mysql/examples/query_async_callbacks.html" target=3D"_blank">https=
://anarthal.github.io/mysql/mysql/examples/query_async_callbacks.html</a></=
div><div><br></div><div>Futures :-=C2=A0</div><div><a href=3D"https://anart=
hal.github.io/mysql/mysql/examples/query_async_futures.html" target=3D"_bla=
nk">https://anarthal.github.io/mysql/mysql/examples/query_async_futures.htm=
l</a></div><div><br></div><div>Boost.Coroutine :-=C2=A0</div><div><a href=
=3D"https://anarthal.github.io/mysql/mysql/examples/query_async_coroutines.=
html" target=3D"_blank">https://anarthal.github.io/mysql/mysql/examples/que=
ry_async_coroutines.html</a></div><div><br></div><div>C++20 Coroutines :-=
=C2=A0</div><div><a href=3D"https://anarthal.github.io/mysql/mysql/examples=
/query_async_coroutinescpp20.html" target=3D"_blank">https://anarthal.githu=
b.io/mysql/mysql/examples/query_async_coroutinescpp20.html</a></div><div><b=
r></div><div>Rub=C3=A9n has also implemented the Asio protocols for deducin=
g default completion token types :-=C2=A0</div><div><a href=3D"https://anar=
thal.github.io/mysql/mysql/examples/default_completion_tokens.html" target=
=3D"_blank">https://anarthal.github.io/mysql/mysql/examples/default_complet=
ion_tokens.html</a><br></div><div><br></div><div>Reviewing a database conne=
ctor in depth will require setting up an instance of a MySQL database. Fort=
unately most (all?) Linux distributions carry a MySQL and/or MariaDB packag=
e. MySQL community edition is available for download on all platforms here:=
</div><div><a href=3D"https://dev.mysql.com/downloads/" target=3D"_blank">h=
ttps://dev.mysql.com/downloads/</a><br></div><div><br></div><div>Rub=C3=A9n=
 has spent quite some time in order to bring us this library candidate. The=
 development process has no doubt been a journey of discovery into Asio, it=
s concepts and inner workings. I am sure he has become a fount of knowledge=
 along the way.</div><div><br></div><div>From a personal perspective, I was=
 very happy to be asked to manage this review. I hope it will be the first =
of many more reviews of libraries that tackle business connectivity problem=
s without further dependencies beyond Boost, arguably one of the most trust=
ed foundation=C2=A0libraries available.</div><div><br></div><div>Please pro=
vide in your=C2=A0review=C2=A0information you think is valuable to<br></div=
><div><div>understand your choice to ACCEPT or REJECT including Describe as=
 a<br>Boost=C2=A0library. Please be explicit about your decision (ACCEPT or=
 REJECT).<br><br>Some other questions you might want to consider answering:=
<br><br>=C2=A0 - Will the library bring additional out-of-the-box utility t=
o Boost?<br>=C2=A0 - What is your evaluation of the implementation?<br>=C2=
=A0 - What is your evaluation of the documentation?<br>=C2=A0 - Will the ch=
oice of=C2=A0API abstraction model ease the development of software that=C2=
=A0must talk to a MySQL=C2=A0database?<br></div><div>=C2=A0 - Are there any=
 immediate improvements that could be made after acceptance, if acceptance =
should happen?</div><div>=C2=A0 - Did you try to use the library? With whic=
h compiler(s)? Did you<br>=C2=A0 =C2=A0 have any problems?<br>=C2=A0 - How =
much effort did you put into your evaluation? A glance? A quick<br>=C2=A0 =
=C2=A0 reading? In-depth study?<br>=C2=A0 - Are you knowledgeable about the=
 problem domain?<br><br>More information about the=C2=A0Boost=C2=A0Formal=
=C2=A0Review=C2=A0Process can be found<br>at:=C2=A0<a href=3D"http://www.bo=
ost.org/community/reviews.html" rel=3D"noreferrer" target=3D"_blank">http:/=
/www.boost.org/community/reviews.html</a><br><br>The=C2=A0review=C2=A0is op=
en to anyone who is prepared to put in the work of evaluating and reviewing=
 the library. Prior experience in contributing=C2=A0to=C2=A0Boost=C2=A0revi=
ews=C2=A0is not a requirement.<br><br></div><div>Thank you for your efforts=
 in the=C2=A0Boost=C2=A0community. They are very much appreciated.<br><br>R=
ichard Hodges<br>-=C2=A0review=C2=A0manager of the proposed=C2=A0Boost.MySQ=
L library<br clear=3D"all"><div><br></div><div>Rub=C3=A9n is often availabl=
e on CppLang=C2=A0Slack and of course by email should you require any clari=
fication not covered by the documentation, as am I.</div></div><font color=
=3D"#888888"><div><br></div></font></div><div><br></div>-- <br><div dir=3D"=
ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div dir=
=3D"ltr"><div><div dir=3D"ltr">Richard Hodges<div><a href=3D"mailto:hodges.=
[email protected]" target=3D"_blank">[email protected]</a></div><div>office: +44=
 2032 898 513</div><div>home: +376 861 195</div><div>mobile:=C2=A0+376 380 =
212</div><div><br></div></div></div></div></div></div>

--0000000000004ea76805def4ff2c--

--===============7990853922648755795==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline