README.md 3.22 KB
Newer Older
1
Algorithms Library Toolkit
2 3
=====================================

Tomáš Pecka's avatar
Tomáš Pecka committed
4
![automaton][logo]
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
5

Tomáš Pecka's avatar
Tomáš Pecka committed
6 7
For documentation and quickstart see our [website][7].

Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
8 9
What is it?
-----------
10
The Algorithms library toolkit (ALT) is a collection of implementations
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
11 12
of various types of automata, grammars, and other common structires along
with mathematical implementation of algorithms over these structures.
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
13
Originaly developed at Faculty of Information Technology of Czech Technical
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
14
University in Prague. It supposed to be a reference implementation of formal
15 16 17
algorithms as-are in papers. It's interface allows practical reuse of existing
algorithms in form of by pipe comunicating, partially using a query language in command
line, and partially using a GUI interface.
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
18

Tomáš Pecka's avatar
Tomáš Pecka committed
19

Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
20 21
The Latest Version
------------------
22
Packages and docker images with latest stable and nightly versions can be found visiting at [website][7].
Tomáš Pecka's avatar
Tomáš Pecka committed
23 24 25 26


Requirements
------------
27 28
C++-20 capable compiler, `cmake` (plus `make` or `ninja`). Linux platform (99.9 % percent of the features
should work on different platforms but there are still small parts of code that are Linux only).
Tomáš Pecka's avatar
Tomáš Pecka committed
29

Tomáš Pecka's avatar
Tomáš Pecka committed
30
Build tools:
31 32
 * `cmake >= 3.12`
 * `g++ >= 10.0` or `clang++ >= 9.0` (compilation in C++20)
Tomáš Pecka's avatar
Tomáš Pecka committed
33 34 35 36 37 38

Libraries:
 * `tclap`
 * `libxml2`
 * `readline`

39
For GUI, you will need also the following libraries. However, GUI does not build by default now. Use cmake option `-DWITH_AGUI=ON` to build it:
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
40
 * `Qt5-qtbase >= 5.7`
Tomáš Pecka's avatar
Tomáš Pecka committed
41 42 43 44 45 46 47
 * `jsoncpp`
 * `graphviz`

Optional dependencies:
 * `doxygen` (for documentation generation)
 * `graphviz` (for documentation generation and automata visualizations)

Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
48

Tomáš Pecka's avatar
Tomáš Pecka committed
49 50
Installation
------------
51 52
You can build from sources using cmake or [download packages][7] or sources of [stable release][3]
We recommend running the testsuite using `ctest` as well.
Tomáš Pecka's avatar
Tomáš Pecka committed
53

54 55 56
We support common cmake options, additional ones are:
* `-DWITH_AGUI=ON` to build deprecated GUI part
* `-DWITH_DOCS=ON` to build a `doxygen` target to generate API docs.
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
57 58 59 60


Documentation
-------------
61 62
In order to generate API documentation, run cmake with `-DWITH_DOCS=ON` and then invoke `doxygen` target.
The high-level documentation is located at [ALT website][7].
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
63 64


Tomáš Pecka's avatar
Tomáš Pecka committed
65
Contributing
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
66
------------
Tomáš Pecka's avatar
Tomáš Pecka committed
67
Feel free to [fork][4] this project and send your merge requests there.
68 69 70 71 72
In case you want to run our Gitlab CI, remove all the following parts of code in `.gitlab-ci.yml`.
```
tags:
 - altbuilder
```
Tomáš Pecka's avatar
Tomáš Pecka committed
73 74 75

Developers
----------
76
Editor configuration for this project is provided by [editorconfig][6].
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
77

78

79 80 81 82
Issues and bugs
---------------
Please use our [issue tracker][2].

Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
83 84
Licensing
---------
Tomáš Pecka's avatar
Tomáš Pecka committed
85
Please see LICENSE file.
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
86 87 88 89


Contacts
--------
90
 * You can contact the authors using our [issue tracker][2] or by email.
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
91 92 93

Authors
-------
94 95 96 97
 * Ing. Jan Trávníček,
 * Ing. Tomáš Pecka,
 * Ing. Štěpán Plachý,
 * et. al.
Ing. Jan Trávníček's avatar
Ing. Jan Trávníček committed
98 99


Tomáš Pecka's avatar
Tomáš Pecka committed
100
[1]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library
101
[2]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/issues
Tomáš Pecka's avatar
Tomáš Pecka committed
102 103 104
[3]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/tags
[4]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/forks/new
[5]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/container_registry
105
[6]: https://editorconfig.org
106
[7]: https://alt.fit.cvut.cz
107
[logo]: docs/logo.png