<p>First of all: off-topic as there is the <a href="https://softwarerecs.stackexchange.com/">https://softwarerecs.stackexchange.com/</a> for these kind of questions (but personally I don't mind). </p>

<p>Secondly, you can't prove a negative but <em>if your data is continuous and multidimensional</em>, I would say that probably nothing ticks all of these boxes out-of-the-box. </p>

<p>I have implemented the Kraskov estimator and a bunch of related measures in python as at the time there wasn't anything else publicly available apart from a couple of dubious scripts written in MATLAB on the Mathworks exchange (<a href="https://github.com/paulbrodersen/entropy_estimators/" rel="nofollow noreferrer">my project can be found here</a>). Most of the heavy lifting is either pushed down to C (as I use <code>cKDTree</code> to find nearest neighbours) or to LAPACK/BLAS (i.e. Fortran), so I don't think that there is much to be gained by further optimization. At least for my data sets, the python "overhead" is small compared to everything else.
I don't do any bias correction in the published version of the repository. This is by design as I think that if your interactions between variables are small enough that you need to worry about biases then you <strong>really</strong> need to worry about it. All bias correction methods have a bunch of assumptions baked in and providing anything out of the box does more harm than good, IMO.</p>

<p>Then there is <a href="https://github.com/gregversteeg/NPEET" rel="nofollow noreferrer">NPEET</a>, which is also in python, also build around the Kraskov estimator, and very, very similar to my stuff (so similar in fact that when I first read the source, I thought they had forked my repo until I saw that they first published their code a month before me). </p>

<p>Finally, there is <a href="https://arxiv.org/abs/1801.04062" rel="nofollow noreferrer">MINE</a>, an algorithm developed in Joshua Bengio's group. Their approach is conceptually very different from Kozachenko/Kraskov, and a very interesting read. They published their method last year but there are already a couple of implementations on github. I haven't had a chance to try it out myself, nor have I looked in detail at any of the implementations, so I don't have an informed opinion on it (other than that I am big fan of Joshua Bengio's work in general). The paper looks very promising but I haven't seen an independent evaluation so far (that doesn't mean there isn't one, though). However, they are training a neural network with gradient descent on mini-batches to estimate the mutual information, so I don't expect it to be fast. At all.  </p>

<p>For discrete/binned data, there is <a href="https://nemenmanlab.org/~ilya/index.php/Entropy_Estimation" rel="nofollow noreferrer">Ilya Nemenman's NSB estimator</a>, which ticks all boxes apart from your first one, which presumably is your crucial criterion.    </p>
State of the art library for estimating differential entropy from real data
<p>I am looking for a state of the art library for estimating differential entropy from finite samples. In an ideal world, it would have the following features:</p>

<ul>
<li>Work with real-valued multi-dimensional data</li>
<li>Optimized for high performance (e.g. Implemented in C)</li>
<li>Be aware of biases in sample entropy estimators and correct them (see, e.g. <a href="https://www.cns.nyu.edu/pub/lcv/paninski-infoEst-2003.pdf" rel="nofollow noreferrer">Paninski2003</a>)</li>
<li>Use something better than naive binning estimator (e.g. <a href="https://journals.aps.org/pre/abstract/10.1103/PhysRevE.69.066138" rel="nofollow noreferrer">Kraskov</a> estimator)</li>
</ul>

<p>What are my options?</p>