{"id":24884485,"url":"https://github.com/learnlib/learnlib","last_synced_at":"2025-04-08T12:09:41.116Z","repository":{"id":8549463,"uuid":"10172073","full_name":"LearnLib/learnlib","owner":"LearnLib","description":"A free, open-source Java library for automata learning algorithms","archived":false,"fork":false,"pushed_at":"2025-03-17T17:39:37.000Z","size":34492,"stargazers_count":214,"open_issues_count":7,"forks_count":55,"subscribers_count":15,"default_branch":"develop","last_synced_at":"2025-04-01T11:04:08.973Z","etag":null,"topics":["automata-learning-algorithms","java","java-library","machine-learning"],"latest_commit_sha":null,"homepage":"https://learnlib.de","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LearnLib.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-05-20T12:18:14.000Z","updated_at":"2025-03-17T17:39:41.000Z","dependencies_parsed_at":"2023-11-15T12:31:09.088Z","dependency_job_id":"ffc55fc2-e7a0-464e-b521-3be1e5ffa040","html_url":"https://github.com/LearnLib/learnlib","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnLib%2Flearnlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnLib%2Flearnlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnLib%2Flearnlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnLib%2Flearnlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LearnLib","download_url":"https://codeload.github.com/LearnLib/learnlib/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247838444,"owners_count":21004580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automata-learning-algorithms","java","java-library","machine-learning"],"created_at":"2025-02-01T14:27:49.365Z","updated_at":"2025-04-08T12:09:41.081Z","avatar_url":"https://github.com/LearnLib.png","language":"Java","readme":"# LearnLib\n\n[![CI](https://github.com/LearnLib/learnlib/actions/workflows/ci.yml/badge.svg)](https://github.com/LearnLib/learnlib/actions/workflows/ci.yml)\n[![Coverage](https://coveralls.io/repos/github/LearnLib/learnlib/badge.svg?branch=develop)](https://coveralls.io/github/LearnLib/learnlib?branch=develop)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/de.learnlib/learnlib-parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/de.learnlib/learnlib-parent)\n\nLearnLib is a free, open-source ([Apache License, v2.0][1]) Java library for automata learning algorithms.\n\n\n## About\n\nLearnLib is mainly developed at [TU Dortmund University, Germany][2].\nIts original purpose is to provide a framework for research on automata learning algorithms as well as for their application in practice.\n\nThe public version is a re-implemented version of the former closed-source version of LearnLib.\nWhile certain features have been stripped for improved modularity, development has since then extended the features offered.\nCurrently, the following learning algorithms with respective target models are supported:\n\n\n| Algorithm (active)  | Target models               |     | Algorithm (passive)   | Models                |\n|---------------------|-----------------------------|-----|-----------------------|-----------------------|\n| AAAR                | `DFA` `Mealy` `Moore`       |     | OSTIA                 | `SST`                 |\n| ADT                 | `Mealy`                     |     | RPNI (incl. variants) | `DFA` `Mealy` `Moore` |\n| DHC                 | `Mealy`                     |     |                       |                       |\n| Kearns \u0026 Vazirani   | `DFA` `Mealy`               |     |                       |                       |\n| Lambda              | `DFA` `Mealy`               |     |                       |                       |\n| L#                  | `Mealy`                     |     |                       |                       |\n| L* (incl. variants) | `DFA` `Mealy` `Moore`       |     |                       |                       |\n| NL*                 | `NFA`                       |     |                       |                       |\n| Observation Pack    | `DFA` `Mealy` `Moore` `VPA` |     |                       |                       |\n| Procedural          | `SPA` `SBA` `SPMM`          |     |                       |                       |\n| TTT                 | `DFA` `Mealy` `Moore` `VPA` |     |                       |                       |\n\nAdditionally, LearnLib offers a variety of tools to ease the practical application of automata learning on real-world systems.\nThis includes drivers and mappers for interfacing software systems with the LearnLib API as well as caches and parallelization for improving the overall performance of the learning setup.\nAlso, more nuanced setups such as Black-Box-Checking (via [LTSmin][ltsmin]) or inferring partial machines are possible.\n\nWhile we strive to deliver code at a high quality, please note that there exist parts of the library that still need thorough testing.\nContributions -- whether it is in the form of new features, better documentation or tests -- are welcome.\n\n## Build Instructions\n\nFor simply using LearnLib you may use the Maven artifacts which are available in the [Maven Central repository][maven-central].\nIt is also possible to download a bundled [distribution artifact][maven-central-distr] if you want to use LearnLib without Maven support.\nNote that LearnLib requires Java 11 (or newer) to build but still supports Java 8 at runtime.\n\n#### Building development versions\n\nIf you intend to use development versions of LearnLib, you can either use the deployed SNAPSHOT artifacts from the continuous integration server (see [Using Development Versions](https://github.com/LearnLib/learnlib/wiki/Using-Development-Versions)), or build them yourself.\nSimply clone the development branch of the repository\n\n```\ngit clone -b develop --single-branch https://github.com/LearnLib/learnlib.git\n```\n\nand run a single `mvn clean install`.\nThis will build all the required maven artifacts and will install them in your local Maven repository so that you can reference them in other projects.\n\nIf you plan to use a development version of LearnLib in an environment where no Maven support is available, simply run `mvn clean package -Pbundles`.\nThe respective JARs are then available under `distribution/target/bundles`.\n\n**Note: Development versions of LearnLib usually depend on development versions of [AutomataLib][7].**\nFor building development versions of AutomataLib, see the corresponding documentation on the project's README.\n\n#### Developing LearnLib\n\nFor developing the code base of LearnLib it is suggested to use one of the major Java IDEs which come with out-of-the-box Maven support.\n\n* For [IntelliJ IDEA][intellij]:\n  1. Select `File` -\u003e `New` -\u003e `Project from existing sources` and select the folder containing the development checkout.\n  1. Choose \"Import Project from external model\", select \"Maven\" and click `Create`.\n  1. In order to have both development versions of AutomataLib and LearnLib available at once, continue to import AutomataLib as documented in the project's README, but choose `File` -\u003e `New` -\u003e `Module from existing sources` as the first step.\n\n* For [Eclipse][eclipse]:\n  1. **Note**: LearnLib uses annotation processing on several occasions throughout the build process.\n  This is usually handled correctly by Maven.\n  However, for Eclipse, you may need to manually enable annotation processing under `Preferences` -\u003e `Maven` -\u003e `Annotation Processing`.\n  1. Select `File` -\u003e `Import...` and select \"Existing Maven Projects\".\n  1. Select the folder containing the development checkout as the root directory and click `Finish`.\n  1. In order to have both development versions of AutomataLib and LearnLib available at once, continue to import AutomataLib as documented in the project's README.\n\n\n## Documentation\n\n* **Maven Project Site:** [latest release](https://learnlib.github.io/learnlib/maven-site/latest/) | [older versions](https://learnlib.github.io/learnlib/maven-site/)\n* **API Documentation:** [latest release](https://learnlib.github.io/learnlib/maven-site/latest/apidocs/) | [older versions](https://learnlib.github.io/learnlib/maven-site/)\n\n\n## Questions?\n\nIf you have any questions regarding the usage of LearnLib or if you want to discuss new and exciting ideas for future contributions, feel free to use the [Discussions](https://github.com/LearnLib/learnlib/discussions) page to get in touch with the LearnLib community.\n\n\n## Maintainers\n\n* [Markus Frohme][6] (2017 - )\n* [Falk Howar][5] (2013 - )\n* [Malte Isberner][4] (2013 - 2015)\n\n\n[1]: http://www.apache.org/licenses/LICENSE-2.0\n[2]: https://cs.tu-dortmund.de\n[3]: https://learnlib.de\n[4]: https://github.com/misberner\n[5]: https://github.com/fhowar\n[6]: https://github.com/mtf90\n[7]: https://github.com/LearnLib/automatalib\n\n[maven-central]: https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22de.learnlib%22\n[maven-central-distr]: https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22de.learnlib.distribution%22\n[intellij]: https://www.jetbrains.com/idea/\n[eclipse]: https://www.eclipse.org/\n[ltsmin]: https://ltsmin.utwente.nl/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearnlib%2Flearnlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flearnlib%2Flearnlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearnlib%2Flearnlib/lists"}