mofile - gettext library for D

2018-05-10 Thread FreeSlave via Digitalmars-d-announce
It was a real concern for me that there's no gettext-compatible 
package for D (at least I could not find one in dub registry), 
because it's kind of standard. So I made it myself.


mofile is similar to GNU gettext, but gettext and ngettext 
functions are implemented as member functions of MoFile struct.


This package features only .mo file parsing and getting 
translated messages (with support for plural forms). No 
bindtextdomain present (so no globals)


To produce .mo files you still use standard utilities like 
xgettext, msginit, msgmerge and msgfmt.


dub package: https://code.dlang.org/packages/mofile
github repo: https://github.com/FreeSlave/mofile


Re: Reorganization and list of D libraries (300+)

2017-11-04 Thread FreeSlave via Digitalmars-d-announce

On Saturday, 4 November 2017 at 00:12:19 UTC, Fra Mecca wrote:


https://github.com/FraMecca/D_Libraries_Registry



I checked README.md in this repo. Not sure why my nick is used in 
place of name of lnk library.

Also inilike has nothing to do with argv.


Re: "Competitive Advantage with D" is one of the keynotes at C++Now 2017

2017-04-11 Thread FreeSlave via Digitalmars-d-announce

On Tuesday, 11 April 2017 at 06:08:16 UTC, Ali Çehreli wrote:

I will be presenting D as a time-saving tool at C++Now:

  http://cppnow.org/

I have to say it took me a very long time to come up with the 
title and the abstract. How could I sell D to C++ experts? 
Luckily, I asked Manu and among a long list of ideas he said 
"it's about saving time" and "time is money". How can you argue 
with that? ;)


Do you agree or disagree that D brings competitive advantage? 
Please let me know.


Are you attending the conference?

Ali


D can't compete with C++ until it gets proper dynamic library 
support on all platforms. As far as I understand there're still 
problems on Windows.


Re: unDE 0.2.0 - unusual command line and keybar

2017-01-30 Thread FreeSlave via Digitalmars-d-announce

On Monday, 30 January 2017 at 03:10:28 UTC, unDEFER wrote:

On Sunday, 29 January 2017 at 23:57:30 UTC, FreeSlave wrote:

On Sunday, 29 January 2017 at 19:00:30 UTC, unDEFER wrote:


Very interesting concept (Probably it's not new, but I never 
actually used file managers like this). It looks you put much 
love and effort in it. Damn, you even made packages for many 
different Linux distros! (I'm always lazy when things come to 
packaging, so I'm just amazed that you made so many).


Thank you

Why did you not give a link to github repo? I had to search it 
myself https://github.com/unDEFER/unde


Because it is only mirror and I update it only on releases.

How can I build and run unde myself? I built it via dub build 
and installed ttf-ancient-fonts, but it still throws exception 
when I try to run ./unde:
object.Exception@source/unde/font.d(714): TTF_OpenFont: 
Couldn't open 
/usr/share/fonts/truetype/ancient-scripts/Symbola_hint.ttf


Look source/unde/font.d, there is many "versions" where may be 
installed these fonts. If you find your paths you can use 'dub 
build -c "Version"'.

Else you can add own or make symbolic links.

Also you can say your distro and maybe the next time I will 
make package for you.


I'm on Debian 8. I rebuilt it with same options as provided 
deb-package and it works now. Though it shows many errors on 
launch:


Can't load 
/home/freeslave/git_projects/unde/images/clear_errors.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/exit.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/remove.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/rescan.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/deselect.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/gomark.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/sort.png: 
Invalid renderer
Can't load 
/home/freeslave/git_projects/unde/images/create_directory.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/copy.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/move.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/mark.png: 
Invalid renderer
Can't load /home/freeslave/git_projects/unde/images/terminal.png: 
Invalid renderer


Same when installed from deb package, but different path 
(/usr/share/unde/images)


Re: unDE 0.2.0 - unusual command line and keybar

2017-01-29 Thread FreeSlave via Digitalmars-d-announce

On Sunday, 29 January 2017 at 19:00:30 UTC, unDEFER wrote:
unDE's not DE which in the future must be replacement for all 
programs in OS.
But today is very original file manager, image and text viewer 
and (what discovered with 0.2.0 version) command line and 
keybar.

More information: http://unde.sourceforge.net/en/ch25.html
Video with English subtitles: https://youtu.be/XY7Jegxq6vg


Very interesting concept (Probably it's not new, but I never 
actually used file managers like this). It looks you put much 
love and effort in it. Damn, you even made packages for many 
different Linux distros! (I'm always lazy when things come to 
packaging, so I'm just amazed that you made so many).


Why did you not give a link to github repo? I had to search it 
myself https://github.com/unDEFER/unde


How can I build and run unde myself? I built it via dub build and 
installed ttf-ancient-fonts, but it still throws exception when I 
try to run ./unde:
object.Exception@source/unde/font.d(714): TTF_OpenFont: Couldn't 
open /usr/share/fonts/truetype/ancient-scripts/Symbola_hint.ttf


Re: [Slides] Generic Low Level Programming with D - The Better C for your Business

2016-10-28 Thread FreeSlave via Digitalmars-d-announce

On Friday, 28 October 2016 at 06:46:27 UTC, Ilya Yaroshenko wrote:

https://docs.google.com/presentation/d/1w1cQ8vDluglRIt8Qdnm-sY7kqxoKZxbPEWW6tR3lPpo/edit?usp=sharing


Thanks. Was it for live presentation? Is there a video?

And where is this fox from?


Re: Web page listing all D compilers (and DMDFE version!) on travis-ci

2016-06-07 Thread FreeSlave via Digitalmars-d-announce

On Tuesday, 26 April 2016 at 06:42:11 UTC, Nick Sabalausky wrote:

https://semitwist.com/travis-d-compilers

That's an auto-generated listing of all versions of DMD, GDC 
and LDC available on travis-ci.


[...]


Looks like semitwist.com is down. How about duplicating this list 
to github pages?


Re: LDC 1.0.0 has been released!

2016-06-07 Thread FreeSlave via Digitalmars-d-announce

On Tuesday, 7 June 2016 at 08:09:53 UTC, Jacob Carlborg wrote:

On 2016-06-06 13:25, FreeSlave wrote:

Cool! Just checked on osx, Objective-C support works and it's 
free from

dmd bugs that prevent my project to work with Cocoa.


Have these bugs been reported?


Yes. Look at https://issues.dlang.org/show_bug.cgi?id=16096

I don't have such problem with ldc 1.0.0.


Re: LDC 1.0.0 has been released!

2016-06-06 Thread FreeSlave via Digitalmars-d-announce

On Monday, 6 June 2016 at 07:00:56 UTC, Kai Nacke wrote:

Hi everyone,

It is a great pleasure to announce that version 1.0.0 of LDC, 
the LLVM-based D compiler, is now available for download!


The release is based on the 2.070.2 frontend and standard 
library and supports LLVM 3.5-3.8. We provide binaries for 
Linux, OX X, Win32 & Win64, Linux/ARM (armv7hf). :-)


As usual, you can find links to the changelog and the binary 
packages over at digitalmars.D.ldc:

http://forum.dlang.org/post/lwsnqbravjqbnnryv...@forum.dlang.org

Regards,
Kai


Cool! Just checked on osx, Objective-C support works and it's 
free from dmd bugs that prevent my project to work with Cocoa.


Re: Commercial video processing app in D (experience report)

2016-04-27 Thread FreeSlave via Digitalmars-d-announce

On Wednesday, 27 April 2016 at 14:14:02 UTC, FreeSlave wrote:

On Wednesday, 27 April 2016 at 14:07:18 UTC, FreeSlave wrote:

On Wednesday, 27 April 2016 at 13:58:13 UTC, thedeemon wrote:

On Wednesday, 27 April 2016 at 13:04:27 UTC, FreeSlave wrote:


Screenshots are so blurred.


They are not. Just click to enlarge, your browser blurred 
them while resizing.


They are. Well, maybe blurred is not the right word, but 
screenshots have obvious jpeg artifacts. Even those that have 
png extension. Just look at window title in window header.


Ok, I'm not right about png ones. They look ok if I download 
them to computer and open in photo viewer. Weird Google Chrome 
renders them worse then they are (in 100% scale).


Images look good (even jpeg ones) if I use open original image in 
new tab. Though both have the same address. Can't explain what 
the issue here.


Re: Commercial video processing app in D (experience report)

2016-04-27 Thread FreeSlave via Digitalmars-d-announce

On Wednesday, 27 April 2016 at 14:07:18 UTC, FreeSlave wrote:

On Wednesday, 27 April 2016 at 13:58:13 UTC, thedeemon wrote:

On Wednesday, 27 April 2016 at 13:04:27 UTC, FreeSlave wrote:


Screenshots are so blurred.


They are not. Just click to enlarge, your browser blurred them 
while resizing.


They are. Well, maybe blurred is not the right word, but 
screenshots have obvious jpeg artifacts. Even those that have 
png extension. Just look at window title in window header.


Ok, I'm not right about png ones. They look ok if I download them 
to computer and open in photo viewer. Weird Google Chrome renders 
them worse then they are (in 100% scale).


Re: Commercial video processing app in D (experience report)

2016-04-27 Thread FreeSlave via Digitalmars-d-announce
That's great. I'm surprised someone used DlangUI for commercial 
app. I would not say it's quite ready even for free ones. It's 
cool you merged your changes.


On Wednesday, 27 April 2016 at 12:42:05 UTC, thedeemon wrote:


Couple of screenshots:
http://data.infognition.com/VideoEnhancer/ve2d-filters.jpg
http://data.infognition.com/VideoEnhancer/ve2e-save.jpg



Screenshots are so blurred. Do you encourage us to use video 
enhancer to get better image quality? :)


Re: XDG-APP and D

2016-04-22 Thread FreeSlave via Digitalmars-d-announce

On Thursday, 21 April 2016 at 18:55:23 UTC, Gerald wrote:
For those not familiar, xdg-app is a Linux virtualization 
system targeted at desktop apps, it's been under pretty heavy 
development and is available for use in Gnome 3.20.


Mathias Clausen recently wrote a blog entry about creating his 
first xdg-app and the application he chose to play with was 
Terminix, a terminal emulator, which is written in D. He had 
some D specific challenges to deal with which may be 
interesting to others looking to support xdg-app.


You can read his blog entry here:

https://blogs.gnome.org/mclasen/2016/04/15/my-first-xdg-app.


How did he get build that weighs less than megabyte? When 
building with dub -b release and after stripping binary terminix 
still weighs 9 MB on my debian. And it's just a single binary, 
without resources and dynamic dependencies.


Re: mimeapps - finding association between MIME types and applications

2016-04-16 Thread FreeSlave via Digitalmars-d-announce

On Saturday, 16 April 2016 at 21:58:35 UTC, ag0aep6g wrote:

On 16.04.2016 20:48, FreeSlave wrote:
github repo: https://github.com/MyLittleRobo/mimeapps 
(examples included)


You've got some bad `@trusted`s in your code:


:

The constraint allows user-defined types that implicitly 
convert to const(char)[] via alias this. Such a type may, for 
example, have an unsafe opAssign, which you're mistakenly 
trusting here.


I would better use inout here, but it has problems with Tuples. I 
don't know how to rewrite this code to inout so it still remained 
buildable. The other way of course is to rewrite constraints to 
match real strings only not types with alias this.



,
:

Similarly, IniLikeReader may do unsafe stuff and can't be 
trusted.


This is usually constructed from iniLikeStringReader or 
iniLikeFileReader from inilike library, but yeah, generally it 
can be non-trusted user-defined type. Thanks for pointing out. 
Will fix it.




mimeapps - finding association between MIME types and applications

2016-04-16 Thread FreeSlave via Digitalmars-d-announce
mimeapps is a library for detection of which applications can be 
used to open files of given MIME type.


Note: this is essential only for systems that follow Freedesktop 
specifications, i.e. Linux, BSD and some others. MS Windows and 
OS X have their own file type associations systems.


github repo: https://github.com/MyLittleRobo/mimeapps (examples 
included)

dub package: http://code.dlang.org/packages/mimeapps
Specification: 
https://www.freedesktop.org/wiki/Specifications/mime-apps-spec/


Use cases:

1. Building "Open with" menu.
2. Finding user preferred application for specific file type, 
e.g. text editor for text/plain or file manager for 
inode/directory.
3. Finding user preferred application to open uri, e.g. user 
preferred web browser for http and https links.


Related libraries:

https://github.com/MyLittleRobo/desktopfile - reading and 
executing .desktop files.
https://github.com/MyLittleRobo/mime - parsing shared MIME type 
database and detecting MIME types of files.


Re: New repo for my reusable D Phobos extensions

2016-04-09 Thread FreeSlave via Digitalmars-d-announce

On Saturday, 9 April 2016 at 18:25:54 UTC, Nordlöw wrote:

I've packaged my reusable extensions to Phobos at

https://github.com/nordlow/phobos-next

PRs are very welcome.

There are lots of goodies here. Some of them should probably be 
moved to standard Phobos. I currently have lots of other D 
things to do, but you guys are welcome to try to integrate them 
into Phobos.


Enjoy or Destroy!


Not all functions have documentation comments.
But most have unittests. You can add empty documentation comments 
before each unittest to make them appear in docs as examples of 
usage.


Re: Google Summer of Code 2016 Ideas Page

2015-11-06 Thread FreeSlave via Digitalmars-d-announce
On Friday, 6 November 2015 at 03:17:59 UTC, Craig Dillabaugh 
wrote:

The ideas page for the 2016 Google Summer of Code is now up:

http://wiki.dlang.org/GSOC_2016_Ideas

Right now it is remarkably similar to the 2015 page!  The 
Google folks seem rather busy, so maybe no one would notice, 
but if anyone has ideas for new projects that would be 
fantastic.


Also, if anyone feels an existing project needs to be 
withdrawn, please let me know.


Cheers,

Craig


Cool, I did not know there're plans for std.i18n.

By the way, I'm not student anymore, so no GSOC for me.


Re: Atrium - 3D game written in D

2015-11-06 Thread FreeSlave via Digitalmars-d-announce

On Friday, 6 November 2015 at 09:04:05 UTC, Timur Gafarov wrote:
Atrium (code name) is a work-in-progress science fiction game 
with physics based puzzles (gravity effects, force fields, etc) 
akin to Portal or Inverto. The game is fully written in D, it 
uses custom graphics engine based on OpenGL and SDL. Physics 
engine is also written from scratch.


Source code:
https://github.com/gecko0307/atrium

IndieDB page:
http://www.indiedb.com/games/atrium

A precompiled demo for Windows:
https://www.dropbox.com/s/qh8gai2n94qe8jj/atrium-testbuild-051115.zip?dl=0


I visit your blog time to time and sometimes download demo. 
Really glad to see improvements. Definitely will wait for the 
release to play.


Did not know about Inverto, should check it out too.


Re: mime - library for parsing shared MIME database

2015-08-16 Thread FreeSlave via Digitalmars-d-announce

On Sunday, 16 August 2015 at 03:56:45 UTC, Rikki Cattermole wrote:

On 16/08/2015 6:30 a.m., FreeSlave wrote:

Currently I'm working on mime library for D. Dub page:
http://code.dlang.org/packages/mime
It can parse MIME database files, including binary ones, like
mime.cache. It also has algorithms for mime type detecting by 
file name.


It's not fully implemented yet and does not have stable API. 
Issues and
goals are listed on the github page: 
https://github.com/MyLittleRobo/mime


If someone is interested in the project, I would be glad to 
discuss

interface and implementation details of the library.

If you don't know what is shared MIME database and why does it 
matter

read this:
http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html#idm140625831778224


I had an mime implementation in Cmsed that basically was a hard 
coded file with a whole bunch of mime types along with file 
extensions.


I would be interested in seeing if this can match it 1:1 for 
features, while not allocating. Say give me the mime type for 
payload.


Possibly with its own override/addition csv files.


This library focuses on shared MIME database used in freedesktop 
systems, usually for detecting file types in file managers to 
display appropriate icon and make correct choice of default 
application (well, that's another spec) to run on file. I don't 
think this suits the web world.


Your hardcoded approach is what usually used in web. If I 
remember correctly mime types are hardcoded in Chromium too.
But mime type is not only about extension. Generally pattern can 
be any glob pattern. That's why file managers can detect Makefile 
type as text/x-makefile, even though it does not have extension. 
Same for CMakeLists.txt - the preferred type is text/x-cmake, not 
just text/plain.


Patterns are not alone. There're magic rules for the rescue when 
mime type can't be detected from the name of file. That's how 
Linux file managers differ shell script from python script even 
if both don't have extension (but they have leading comment like 
#!/bin/sh or #!/usr/bin/python). Also that's how file managers 
detect file with unknown pk3 extension (used in Quake III based 
games) as zip file. Because it's really just zip file by its 
contents.


The whole shared MIME database thing is system and user 
dependent, so again it's not what you want to use for web, 
probably unless you manage the database yourself on the server. 
Even in this case patterns and magic rules are just hints. You 
can't rely on that to check if the uploading file is of the 
needed type. For example, if you want to validate image file, the 
only way to do it is to parse the whole file. Still you can use 
hints to cut off obviously invalid files.


I did not target non-allocating code yet, though I believe it's 
possible to make MimeCache to not allocate when detecting file 
type.


mime - library for parsing shared MIME database

2015-08-15 Thread FreeSlave via Digitalmars-d-announce
Currently I'm working on mime library for D. Dub page: 
http://code.dlang.org/packages/mime
It can parse MIME database files, including binary ones, like 
mime.cache. It also has algorithms for mime type detecting by 
file name.


It's not fully implemented yet and does not have stable API. 
Issues and goals are listed on the github page: 
https://github.com/MyLittleRobo/mime


If someone is interested in the project, I would be glad to 
discuss interface and implementation details of the library.


If you don't know what is shared MIME database and why does it 
matter read this:

http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html#idm140625831778224



OS X support

2015-05-08 Thread FreeSlave via Digitalmars-d-announce
OS X support added. It dynamically loads some Carbon functions. 
But path to the framework is hardcoded as 
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore

I'm not sure that it's ok, need advice from OS X programmers.


Desktopfile library

2015-05-03 Thread FreeSlave via Digitalmars-d-announce

dub package: http://code.dlang.org/packages/desktopfile

Implementation of Desktop Entry Specification in D.
Note that currently it's not fully compliant to spec, though it 
should work in the most cases.


Re: Standardpaths library

2015-04-07 Thread FreeSlave via Digitalmars-d-announce

On Monday, 6 April 2015 at 21:40:28 UTC, Marco Leise wrote:


I believe modern desktops offer enough granularity to cover
each of those. For example if I was playing a game on Linux
files would go here:

/usr/share/[games/] - read-only data files.
~/.cache/ - downloaded archives, precompiled scripts, browser
caches and other files that can be recreated or
fetched again if they were to be deleted
~/.config/ - the user's personal configuration; may be
 overriding something in a system directory if
 desired
~/.local/share/ - pretty much a catch all for save games,
  user created content that goes beyond the
  scope of config files, highscores,
  highlighting schemes in an IDE, Steam, ...

Or the other way around:

data   = /usr/share
save games = ~/.local/share
downloaded content = ~/.local/share (or ~/.cache)
configs= ~/.config

Windows has the Local and Roaming directories, which
serve similar but different purposes. E.g. anything machine
specific or big must not be in Roaming.
So if I generally asked for the config dir, I'd probably expect
AppData/Local on Windows and ~/.config on Linux (because I
might write a configuration that only works for this machine.)
Roaming is interesting for users that have their profiles on
servers and might switch to another workstation. So if some
configuration is portable and you want to create something
really fine grained you could offer that directory as an
alternative roaming config dir (returning null or
~/.config on Linux).
In any case there will be multiple results for some
directories (/usr/share, /usr/local/share) and also
several standard paths mapping to the same physical directory
(user data and user cache both map to AppData/Local on
Windows). The user needs to be made aware of this so (s)he
doesn't overwrite files in one standard path with files in a
supposedly different one.

So much for my thoughts on standard paths extreme edition. ;)


Just found out, there's also special Saved Games directory on 
Windows. But only starting with Vista, therefore it's not CSIDL, 
but KNOWNFOLDERID (same as for Downloads). Still I did not find 
fairly new winapi headers for D. Seems like the most use 
translation of MinGW headers which stuck at, likely, Windows XP 
era. Although we could just read some paths from registry 
avoiding calling SHGetKnownFolderPath, it's way too hacky.


Currently the only Roaming directories returned by standardpaths 
library on Windows are Templates and Applications, which is fine. 
The whole roaming thing is specific to Windows, but it would be 
useful to add separate function probably.


The same directory for configs, data and cache locations is the 
problem. I should mention it in documentation. Though for cache 
directory it returns AppData/Local/cache the same way as Qt does.


Re: Standardpaths library

2015-04-05 Thread FreeSlave via Digitalmars-d-announce

On Sunday, 5 April 2015 at 11:42:42 UTC, Marco Leise wrote:

On another note when I ran your 'printdirs' it didn't list a
user Fonts or Applications directory. The Applications
directory is ok, but I do have a ~/.fonts/ directory and
/etc/fonts/fonts.conf says:
  !-- the following element will be removed in the future --
  dir~/.fonts/dir
Fonts in ~/.fonts are listed in LibreOffice. It seems like you
do parse /etc/fonts/fonts.conf. Maybe there is a bug in the
parser?

The whole Applications thing doesn't make much sense on Linux,
right? Is that a directory where applications are installed to
including their assets?


Probably you don't have local 
$XDG_CONFIG_DIR/fontconfig/fonts.conf file.


I've opened issue 
https://github.com/MyLittleRobo/standardpaths/issues/8


About Applications: on my Windows 7 it returns 
C:/Users/Username/Application Data/Microsoft/Windows/Start 
Menu/ProgramsC:/ProgramData/Microsoft/Windows/Start Menu/Programs 
where .lnk files are stored (I believe these are used in the 
start  menu). Since freedesktop systems use .desktop files it 
would be sane to return paths which contain them 
(~/.local/share/applications, /usr/local/share/applications and 
/usr/share/applications). I just have not implemented it yet. 
Though not sure it the whole thing can be useful, since things 
are not the same on Windows and freedesktop: Windows uses 
directories to make menu hierarchy, while freedesktop for the 
same purpose use Categories field in .desktop files. Also .lnk 
and .desktop are different things themselves.


Re: Standardpaths library

2015-04-05 Thread FreeSlave via Digitalmars-d-announce

On Sunday, 5 April 2015 at 11:42:42 UTC, Marco Leise wrote:

is this Windows?
return executable_path


That depends on what do you understand by data. Are game's saves 
data too? Or content downloaded while playing (server-specific 
assets or new levels). In the past it was ok to write configs and 
data to the same path where the game (or application) originally 
installed. But starting with Vista or Windows 7 it's not the case 
since Program Files folder become write-protected by default.


Re: Standardpaths library

2015-04-05 Thread FreeSlave via Digitalmars-d-announce

On Sunday, 5 April 2015 at 12:35:46 UTC, Kagamin wrote:

On Sunday, 5 April 2015 at 09:08:14 UTC, FreeSlave wrote:

And github repo https://github.com/MyLittleRobo/standardpaths


If I understand meaning of PublicShare correctly, it's 
CSIDL_COMMON_APPDATA on Windows.


Although I did not find if any spec mentions the purpose of 
Public folder on freedesktop, I think it should be used for data 
sharing in the local network.


Common AppData on Windows serves different purpose: data 
available for all users on the same computer.


Standardpaths library

2015-04-05 Thread FreeSlave via Digitalmars-d-announce
I wrote small library for getting standard paths (like Pictures, 
Music)

Here's dub package http://code.dlang.org/packages/standardpaths
And github repo https://github.com/MyLittleRobo/standardpaths

You can see open issues on github. Please, participate in 
discussions if you're interested. The biggest problem now is OS X 
support https://github.com/MyLittleRobo/standardpaths/issues/4


You can generate documentation with dub build --build=docs.