Skip to content
Snippets Groups Projects
README.md 3.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • Algorithms Library Toolkit
    
    =====================================
    
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    ![automaton][logo]
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    For documentation and quickstart see our [website][7].
    
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    What is it?
    -----------
    
    The Algorithms library toolkit (ALT) is a collection of implementations
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    of various types of automata, grammars, and other common structires along
    with mathematical implementation of algorithms over these structures.
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    Originaly developed at Faculty of Information Technology of Czech Technical
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    University in Prague. It supposed to be a reference implementation of formal
    
    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.
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    The Latest Version
    ------------------
    
    Packages and docker images with latest stable and nightly versions can be found visiting at [website][7].
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    
    
    Requirements
    ------------
    
    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
    
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    Build tools:
    
     * `cmake >= 3.12`
     * `g++ >= 10.0` or `clang++ >= 9.0` (compilation in C++20)
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    
    Libraries:
    
     * `tclap` (header-only argument parsing library, fetched by CMake and git automatically during build process)
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
     * `libxml2`
     * `readline`
    
    
    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:
    
    Jan Trávníček's avatar
    Jan Trávníček committed
     * `Qt5-qtbase >= 5.7`
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
     * `jsoncpp`
     * `graphviz`
    
    Optional dependencies:
     * `doxygen` (for documentation generation)
     * `graphviz` (for documentation generation and automata visualizations)
    
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    Installation
    ------------
    
    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
    
    
    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.
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    
    
    Documentation
    -------------
    
    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].
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    Contributing
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    ------------
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    Feel free to [fork][4] this project and send your merge requests there.
    
    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
    
    Developers
    ----------
    
    Editor configuration for this project is provided by [editorconfig][6].
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    
    
    Issues and bugs
    ---------------
    Please use our [issue tracker][2].
    
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    Licensing
    ---------
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    Please see LICENSE file.
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    
    
    Contacts
    --------
    
     * You can contact the authors using our [issue tracker][2] or by email.
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    
    Authors
    -------
    
     * Ing. Jan Trávníček,
     * Ing. Tomáš Pecka,
     * Ing. Štěpán Plachý,
     * et. al.
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    
    
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    [1]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library
    
    [2]: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/issues
    
    Tomáš Pecka's avatar
    Tomáš Pecka committed
    [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
    
    [6]: https://editorconfig.org
    
    [logo]: docs/logo.png