Overview
========
Most of the code is written in python. For efficiency reasons, the
``core.tree``, ``core.operations`` and ``parser.newick`` submodules
are written in `cython `_, which makes the parser
about twice as fast while making the final tree take about half the
memory.
When exploring trees ("smartview"), there is an http server
(``ete4/smartview/explorer.py``) that exposes as an api the graphical
capabilities of ETE and also serves a gui to explore the trees
interactively by making use of that api.
The server acts as a *backend* to the requests made by the *frontend*,
which is written in javascript.
Project Layout
--------------
The principal files of the project are::
ete4/ # the module directory
core/
tree.pyx # the Tree class and related functions
operations.pyx # tree-related operations
parser/
newick.pyx # newick parser
smartview/
draw.py # drawing classes and functions to represent a tree
explorer.py # http server that exposes an api to interact with trees
static/
gui.html # entry point for the interactive visualization (html)
js/
gui.js # entry point for the interactive visualization (js)
For a more detailed view, see the :doc:`detailed layout
`.