www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Which Dub packages are you using?

reply aberba <karabutaworld gmail.com> writes:
So I've been doing a tour of dub packages to see whats we've got. 
I must says here's quite a lot to go through and not everything 
falls within my comfort zone.

Please help me know the ones you really like and why.

Here are some I like:

Vibe-d, works exactly as how I'm used to from other framework. 
Has fair rich modules and ecosystem of supported extensions on 
dub. Has got a clean API and fairly good docs.

Requests, honestly its the best I've come across for HTTP 
requests.

Mysql-native, was previously into MySQL-lited but this looks much 
cleaner with a linear flow.


Arsd, by Adam. Just works. Same APIs designs. Well maintained. 
Few dependencies.

Botan, cus its the only one with rich encryption and hashing 
algos. It often breaks but it's what I've got. Its quite capable 
though.

Dxml, I don't do much XML these days but its probably the most 
powerful. I like the clean API and docs too.

Gtkd, its the best on Linux I've used. Considering I use a GTK+ 
based DE

Quick mentions
_----------
dlib, dlib-*
Dargon
hunt-*, seriously love the hunt ecosystem and energy

money
BindBC-*, don't use them directly but almost every graphics 
package on dub uses it. So indirect benefit.
GraphQL-d, seriously, it looks feature rich. Looking to try some 
graqhQL these days. Glad this one exists.


What's your selection?
Jun 25
next sibling parent reply JN <666total wp.pl> writes:
On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 What's your selection?
BindBC-* also. Most of my projects are gamedev related so I need bindings to those C APIs. fswatch - cross-platform support for filesystem watching, I use it to monitor changed files while the app is running so that I can reload them with changes imageformats - very fast image loading capabilities. Used some other library before and it was very very slow dlib - great library for game development. I use only the linear algebra related capabilities - vectors, matrices, quaternions, but there's much more, like functions for noise and some simple collision detection
Jun 25
next sibling parent reply aberba <karabutaworld gmail.com> writes:
On Friday, 26 June 2020 at 06:41:18 UTC, JN wrote:

Nice!

 fswatch - cross-platform support for filesystem watching, I use 
 it to monitor changed files while the app is running so that I 
 can reload them with changes
Is it for like some like a game assets that you reload back into the game scene?
 imageformats - very fast image loading capabilities. Used some 
 other library before and it was very very slow
Interesting
Jun 26
parent JN <666total wp.pl> writes:
On Friday, 26 June 2020 at 08:06:30 UTC, aberba wrote:
 Is it for like some like a game assets that you reload back 
 into the game scene?
Yes, I track image files for textures, shaders and scene file (json based). In case of textures and shaders, if you modify something (e.g. recolor a texture) and save, the engine catches that and reloads the images. In case of scene file, it reloads the whole scene if you e.g. reposition an object (but it's relatively quick, because loading of meshes/textures is the slowest part and it doesn't need to happen again).
Jun 26
prev sibling parent Nils Lankila <NilsLankila gmx.us> writes:
On Friday, 26 June 2020 at 06:41:18 UTC, JN wrote:
 On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 What's your selection?
 an reload them with changes
imageformats - very fast image loading capabilities. Used some other library before and it was very very slow
Yeah it 's a good library, not too small (e.g != isObject) but bringing enough features. I had use it with cairo and as far as I remember there's nothing to say about. It just works. It is a honest package. Interestingly the author is not even too much into D (neither I am, but he's even less).
Jun 26
prev sibling next sibling parent reply Guillaume Piolat <first.name gmail.com> writes:
On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 So I've been doing a tour of dub packages to see whats we've 
 got. I must says here's quite a lot to go through and not 
 everything falls within my comfort zone.

 Please help me know the ones you really like and why.
- arsd.dom for XML parsing => because it builds and it works - bindbc-sdl => dynamic loading is super handy for distribution - dg2d => very fast 2D renderer - pfft => fast FFT, including real-to-complex - msgpack-d => used once, was nice for quick serialization I'm using packages of my own: - printed => make PDF with a canvas API - commonmark-d => a port of MD4C - audio-formats and wave-d => audio decoding
Jun 26
parent reply aberba <karabutaworld gmail.com> writes:
On Friday, 26 June 2020 at 08:50:42 UTC, Guillaume Piolat wrote:
 On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 So I've been doing a tour of dub packages to see whats we've 
 got. I must says here's quite a lot to go through and not 
 everything falls within my comfort zone.

 Please help me know the ones you really like and why.
- arsd.dom for XML parsing => because it builds and it works - bindbc-sdl => dynamic loading is super handy for distribution - dg2d => very fast 2D renderer - pfft => fast FFT, including real-to-complex - msgpack-d => used once, was nice for quick serialization
Cool. Interesting.
 I'm using packages of my own:
 - printed                  => make PDF with a canvas API
 - commonmark-d             => a port of MD4C
 - audio-formats and wave-d => audio decoding
I've been revisiting and checking out your audio softwares. I must say I'm really impressed. Is it all D or what else are you using. E.g. GUI stuff.
Jun 26
parent Guillaume Piolat <first.name gmail.com> writes:
On Friday, 26 June 2020 at 09:16:01 UTC, aberba wrote:
 Is it all D or what else are you using. E.g. GUI stuff.
Thanks! Of course it's all D :) What else?
Jun 26
prev sibling next sibling parent reply Claude <claudemr live.fr> writes:
On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 What's your selection?
I also use BindBC (and was using previously Derelict) for bindings with OpenGL, SDL, GLFW, etc. It does the job, and it does it well. I was using dlib for matrix/vector/quaternion stuff, and I moved to GFM (because its API is safe if I remember correctly, and also because it's french iseroise technology ;) ). I also use Pegged, Erupted (Vulkan bindings), dpp (hacking it to be able to parse Dear-Imgui header file). I'd also love to say I use arsd, mir, reggae and many more, but I don't due to lack of time and opportunity. But those are like latin poetry: you don't have to understand what it means to know it's good.
Jun 26
parent reply aberba <karabutaworld gmail.com> writes:
On Friday, 26 June 2020 at 14:11:07 UTC, Claude wrote:
 On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 What's your selection?
I also use BindBC (and was using previously Derelict) for bindings with OpenGL, SDL, GLFW, etc. It does the job, and it does it well. I was using dlib for matrix/vector/quaternion stuff, and I moved to GFM (because its API is safe if I remember correctly, and also because it's french iseroise technology ;) ). I also use Pegged, Erupted (Vulkan bindings), dpp (hacking it to be able to parse Dear-Imgui header file).
Seems to me there's a lot of people here doing graphics related stuff. I believe you're behind Imgui, right?
Jun 26
parent Claude <claudemr live.fr> writes:
On Friday, 26 June 2020 at 20:06:29 UTC, aberba wrote:
 Seems to me there's a lot of people here doing graphics related 
 stuff.
Yes, I think some reasons for that is that most tutorials about to translate to D. Also D is a native language, you can make any critical routine as fast as you wish. GC is not a problem, you can easily switch it off and use your own memory allocation scheme. You can also swiftly prototype stuff with D. And another reason is that D is cool. On Friday, 26 June 2020 at 20:06:29 UTC, aberba wrote:
 I believe you're behind Imgui, right?
No, I'm not. A guy named Ocornut is behind Dear Imgui. Recently I've been trying to translate Dear Imgui C++ header file to D using dpp, but it contains some static function definitions and some C++ related stuff which are not supported by dpp at the moment. So I've been hacking in dpp to make it swallow that Dear Imgui header. But I'm not done yet. I'll show my progress when I'm reasonably happy with what I made.
Jun 26
prev sibling next sibling parent reply Adam D. Ruppe <destructionator gmail.com> writes:
On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 Please help me know the ones you really like and why.
Technically, I don't use any, since I don't use dub (in my personal stuff anyway, some of my work projects do). But of course I do use my libs, and my doc generator uses a forked version of libdparse, so while I have maintained my own copy for a few years now, it still as its genesis as a community project. A few of the modules inside the arsd repo were actually written by others and I just forked/adopted them too. Like the ttf, mp3, and others were written in C and ported by ketmar. If I ever do an android project I might use dub though since my android dub project does a pretty good job making it easier to use there.
Jun 26
parent reply aberba <karabutaworld gmail.com> writes:
On Friday, 26 June 2020 at 15:34:09 UTC, Adam D. Ruppe wrote:
 On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 Please help me know the ones you really like and why.
Technically, I don't use any, since I don't use dub (in my personal stuff anyway, some of my work projects do). But of course I do use my libs, and my doc generator uses a forked version of libdparse, so while I have maintained my own copy for a few years now, it still as its genesis as a community project. A few of the modules inside the arsd repo were actually written by others and I just forked/adopted them too. Like the ttf, mp3, and others were written in C and ported by ketmar.
Arsd has been used in many unexpected placed I've come across D. Glad you did it and still heavily maintained. Has ketmar been on any DConf, will be interesting to know him.
Jun 26
parent Adam D. Ruppe <destructionator gmail.com> writes:
On Friday, 26 June 2020 at 20:10:27 UTC, aberba wrote:
 Arsd has been used in many unexpected placed I've come across 
 D. Glad you did it and still heavily maintained.
Yeah, I have just done a lot of things over a lot of years now. My cgi.d was first written in 2008*, dom.d in 2010, simpledisplay in 2011. Much of it is fairly basic functionality and it has been around for a long time, so no surprise to see it pop up. I have no idea how many people actually use it. I get some emails from people who use it but not very many. I don't trust the dub stats for one because my lib is designed to be used without dub downloads and I encouraged that for many years, and for two the numbers just seem off. I think a small handful of CI runners account for most the downloads instead of real users. That the top 5 consistently has 2 testing packages would seem to reinforce this belief. fun fact, the original version of Hunt actually was basically a repackaged arsd to integrate it more. Doesn't look like they still have any of my code in there anymore though. They probably rewrote as they grew. * well actually i did a form of cgi.d even earlier than that, but the original version was deleted and completely rewritten in 2008. Since then though it has been the same codebase... and actually still pretty compatible with what it was back then. I always try not to break old stuff unless I have a good reason.
 Has ketmar been on any DConf, will be interesting to know him.
he told me once he reads and writes english a lot better than listens and speaks, so he doesn't get much out of dconf. Fairly active on the irc room when he's not busy with his other projects though. He's both written and ported a lot of good code.
Jun 26
prev sibling next sibling parent jmh530 <john.michael.hall gmail.com> writes:
On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 So I've been doing a tour of dub packages to see whats we've 
 got. I must says here's quite a lot to go through and not 
 everything falls within my comfort zone.

 Please help me know the ones you really like and why.

 [snip]
I am spending a lot of time with libmir, mir-algorithm and mir-core in particular. I have also used numir in the past, and that is now part of libmir. I also have worked with lubeck and mir-random a bit. I would like to do more work with ggplotd. I think having that as a library on run.dlang.org and working properly would be really neat. I admire automem, concepts, openmethods, sumtype, and dpp, but my use so far of them has been more on the hobby side of things. I also admire excel-d, autowrap, embedr (though that's not on code.dlang.org), and pyd, but have made less use of them than I would like.
Jun 26
prev sibling parent aberba <karabutaworld gmail.com> writes:
On Friday, 26 June 2020 at 00:35:42 UTC, aberba wrote:
 So I've been doing a tour of dub packages to see whats we've 
 got. I must says here's quite a lot to go through and not 
 everything falls within my comfort zone.

 Please help me know the ones you really like and why.

 Here are some I like:

 Vibe-d, works exactly as how I'm used to from other framework. 
 Has fair rich modules and ecosystem of supported extensions on 
 dub. Has got a clean API and fairly good docs.

 Requests, honestly its the best I've come across for HTTP 
 requests.

 Mysql-native, was previously into MySQL-lited but this looks 
 much cleaner with a linear flow.


 Arsd, by Adam. Just works. Same APIs designs. Well maintained. 
 Few dependencies.

 Botan, cus its the only one with rich encryption and hashing 
 algos. It often breaks but it's what I've got. Its quite 
 capable though.

 Dxml, I don't do much XML these days but its probably the most 
 powerful. I like the clean API and docs too.

 Gtkd, its the best on Linux I've used. Considering I use a GTK+ 
 based DE

 Quick mentions
 _----------
 dlib, dlib-*
 Dargon
 hunt-*, seriously love the hunt ecosystem and energy

 money
 BindBC-*, don't use them directly but almost every graphics 
 package on dub uses it. So indirect benefit.
 GraphQL-d, seriously, it looks feature rich. Looking to try 
 some graqhQL these days. Glad this one exists.


 What's your selection?
I should add that someone recently mentioned BeamUI which is a fork of which is a fork of DLangUI with many IMO unnecessary stuff stripped out. Its uses CSS for styling instead of old XML. I'm impressed by many of the decisions made since it matches up to what I'm used to in React and what I see SwiftUI (Apple) and Flutter (Google) doing but in with a lite and focused set. If you're familiar with the declarative model used in those mentioned above, BeamUI should look familiar. At this point I think I'm going to be spending more time with it. https://github.com/dayllenger/beamui (See the examples folder)
Jun 27