Frequently Asked Questions

Is Datpy a one-to-one source port?

More or less, yes. By “one-to-one source port”, we mean that the Python implementation follows the Javascript reference implementation as closely as possible. This is definitely the case right now but will probably change once Datpy matures. This path has been chosen for a few reasons:

  1. It is easier for the Python implementors today.

  2. It will be easier for anyone coming from another implementation (Javascript, C++, Rust) to have a point of reference. For example, anyone who knows the Dat project Javascript core will be able to quickly get moving in the Python core too. This is good since a lot of the main Dat community are Javascript programmers right now.

  3. It follows the “approaches not apps” philosophy of the Dat project. The Dat project is not just one module but a lot of them and a lot of the exciting work now happening is made up of plugging in and out those modular pieces. The Python community should have the same opportunities in this regard: a highly modular ecosystem.

How will Datpy stay compatible?

It is true that during the course of the initial goal (Hypercore v7 implementation) that a new release of Hypercore was made. This was a new major version which contains a number of breaking changes on the way to “Dat 2.0”. Fortunately, the Dat community communicate very well and there has been a lot of discussion, working group meetings and forward notice about this work (at least, through development channels, on IRC, for example). As Datpy is still not ready, there is no clear convention on how to coordinate the efforts but the author feels assured that this will be easy to do given the organisation of the existing community.

Does Datpy have funding?

Please see this post for more information.