{"id":21549208,"url":"https://github.com/pschichtel/automata","last_synced_at":"2025-03-18T02:19:06.715Z","repository":{"id":57743264,"uuid":"179169431","full_name":"pschichtel/Automata","owner":"pschichtel","description":"A library that implements formal finite state automata.","archived":false,"fork":false,"pushed_at":"2024-12-09T00:02:12.000Z","size":344,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-24T09:41:32.242Z","etag":null,"topics":["dfa","dfa-construction","dfa-minimization","dfa-minimizer","dfa-regex","fsm","fsm-library","nfa-implementation","nfa2dfa"],"latest_commit_sha":null,"homepage":"https://schich.tel","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pschichtel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"pschichtel"}},"created_at":"2019-04-02T22:39:48.000Z","updated_at":"2024-12-08T00:13:02.000Z","dependencies_parsed_at":"2024-12-03T02:40:44.268Z","dependency_job_id":null,"html_url":"https://github.com/pschichtel/Automata","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pschichtel%2FAutomata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pschichtel%2FAutomata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pschichtel%2FAutomata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pschichtel%2FAutomata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pschichtel","download_url":"https://codeload.github.com/pschichtel/Automata/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244141479,"owners_count":20404837,"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":["dfa","dfa-construction","dfa-minimization","dfa-minimizer","dfa-regex","fsm","fsm-library","nfa-implementation","nfa2dfa"],"created_at":"2024-11-24T06:21:44.787Z","updated_at":"2025-03-18T02:19:06.694Z","avatar_url":"https://github.com/pschichtel.png","language":"Java","funding_links":["https://github.com/sponsors/pschichtel"],"categories":[],"sub_categories":[],"readme":"Automata [![Maven Central](https://img.shields.io/maven-central/v/tel.schich/automata.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22tel.schich%22%20AND%20a:%22automata%22)\n========\n\nA library that implements formal finite state automata.\n\nIf you are looking for an efficient and feature complete linear-time regular expression engine, then this is not the project for you. [Google's re2](https://github.com/google/re2) will very likely do a better job at that.\n\nHowever if you are trying to convert regular expressions into FSAs in order to proof certain properties of the regular expressions and are not too tight on performance requirements, this could be the project you are looking for.\n\nWhat works?\n-----------\n\n- Converting simple (\"formal\") regular expressions into NFAs\n- Converting Java's Patterns (most of the regular syntax is supported) into NFAs\n- Converting NFAs into DFAs\n- Various operations on DFAs and/or NFAs:\n  - minimizing DFAs\n  - completing DFAs\n  - combining multiple automata into a one (e.g. intersection)\n  - complements\n- simple text matching\n\nPossible future features\n------------------------\n\n- Transition events\n- ???\n\nInspired by\n-----------\n\n[Prof. Dr. Karl Stroetmann](https://github.com/karlstroetmann)'s [Formal Languages Lecture](https://github.com/karlstroetmann/Formal-Languages)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpschichtel%2Fautomata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpschichtel%2Fautomata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpschichtel%2Fautomata/lists"}