Home |  Download/Install |  Documentation |  Contact

Tako: Changes From Xonsh

This page contains an attempt to describe the differences between tako and modern versions of xonsh.

tako is, in some ways, a more minimalist shell than xonsh. The goal is to sacrifice some of the "fancy stuff" so that basic shell operations work as expected, the codebase is small, and things are as performant as can be expected from a shell written in Python. As such, a number of pieces of xonsh were removed:

Many of these changes were made in an attempt to reduce the size and complexity of the codebase, and to fix multiple breaking issues with management of subprocess-mode commands. When the project was first forked, these changes led to a drastic reduction in the size of the codebase (~3MB vs ~10MB), increased startup times by a factor of 3, and dramatically reduced CPU load. I have not done any testing recently.

While a big part of the fork indeed involved removing large portions of the xonsh codebase, a number of new features and changes have also been introduced:

Some of these changes have been ported to xonsh, and a number of bugfixes and features have been ported into tako from "modern" xonsh, as well.

An additional change is related to licensing: while xonsh is licensed under a BSD-style license, tako is licensed under the GNU GPL, version 3+.


( oo )

Creative Commons License
The contents of this page are licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License.

The web site is available online at https://takoshell.org, or as a Tor "onion service" at http://takoezpr7wxrc7d6.onion or http://tehbemfqolualhxwkyimu3bdob5s4hkrfuwbwxzbblncjy2j2owgolqd.onion.

The source code for the web site is available in a git repository: git clone git://hz.mit.edu/takoshell.org.git.