3 days ago

Hello guys, in the last time, I told that I would not support vibe-d. This was purely on how many features I would need to implement to support it. But after a second thought, I saw that it would be a great opportunity to make it way more consistent. With that, I announce

Redub v1.7.1:

Some changes since the last announce:


  • Support for -m64/-m32
  • Missing version * on dub.json
  • Optional dependencies handling support
  • Caching to SDL conversion so only the first run is slow
  • copyFiles, extraDependencyFiles and debugVersions
  • Support for ISA on dub.json
  • Support for setting parallelization mode on redub (leaves and no)
  • Support for shared libraries as dependency
  • --combined build
  • Support for single threaded builds
  • Auto infers to be no incremental when having more than 3 dependencies
  • Incremental compilation removal by default so it builds faster on windows
  • Search for compiler when the default is not dmd
  • Escaping paths and now using library full path instead of using library search path
  • Glob matching for file exclusion
  • Encourage message for updating to the newest version
  • Support for arch mapping. Fixes #9
  • Error string showing redub and compiler version on error
  • Support for build type of none


  • Version resolution by creating a memory cache
  • Version resolution when using a subPackage as a dependency
  • Various reductions in memory allocation
  • Made adv diff slightly faster
  • Performance on parsing local packages
  • Optional dependencies are now resolved later so they can be included
  • Faster check on adv_diff, with an improvement in caching check
  • Optimization on redub cache, now creating a root cache separately instead inside a single json file
  • Print local packages being used


  • Library dependencies when inside sourceFiles
  • Merge between parent and child versions
  • copyFiles now has the same behavior from dub.
  • Now correctly excluding optional dependencies with dependencies
  • Now betterC is excluded from the flags to merge
  • Removed hidden files from the included source files
  • Better support on caching webassembly, shared library dependencies, and now correctly inferring ISA from the build command
  • Bug where executeShell was replacing values on the command line and not sending correctly to the linker
  • Now considering local package's version
  • Support for spaced file
  • Now parsing lflags and libraries on environment
  • Bug where some import paths weren't being considered
  • Default configuration would try to be merged if it was a root requirement
  • Improve message and change what was being fetched
  • Dub fetch for some packages specifications

Since this is a single person project, if you wish to use, the most stable version should be always ~master. It is highly recommended to only use the newest version.