{"id":32619185,"url":"https://github.com/fnl/libfsmg","last_synced_at":"2026-06-30T18:31:04.920Z","repository":{"id":6674293,"uuid":"7919145","full_name":"fnl/libfsmg","owner":"fnl","description":"A finite state machine library for pattern matching on generic types in Java sequence containers.","archived":false,"fork":false,"pushed_at":"2013-02-04T09:44:10.000Z","size":420,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-11T13:18:35.593Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/fnl.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-01-30T17:02:00.000Z","updated_at":"2019-08-27T04:42:51.000Z","dependencies_parsed_at":"2022-08-28T03:01:07.341Z","dependency_job_id":null,"html_url":"https://github.com/fnl/libfsmg","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/fnl/libfsmg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnl%2Flibfsmg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnl%2Flibfsmg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnl%2Flibfsmg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnl%2Flibfsmg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fnl","download_url":"https://codeload.github.com/fnl/libfsmg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnl%2Flibfsmg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34979577,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-10-30T18:00:44.406Z","updated_at":"2026-06-30T18:31:04.915Z","avatar_url":"https://github.com/fnl.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"=======\nlibfsmg\n=======\n\nSynopsis\n--------\n\nA generic finite state machine library.\n\nOverview\n--------\n\nThis library provides two means of pattern matching: Knuth-Morris-Pratt (KMP;\nfor the Iterator interface) and Boyer-Moore (BM; for the List interface)\nalgorithm-based **exact matchers** (i.e., two DFAs) and a weighted\nbacktracking-based **pattern matcher** using dynamic programming that provides\nKleene closures (``*``, ``+``, and ``?``) and capture groups (``(`` ... ``)``)\nfor the matched patterns (i.e., a NFA). The entire library is implemented\nusing *generics* (i.e., requires Java 1.5 and beyond), so that any sequence of\ntypes may be used (arrays, Lists and any sequence that provides the Iterator\nprotocol). The APIs are implemented as close as possible to Java's own Pattern\nand Matcher APIs in ``util.regex``.\n\nUsage\n-----\n\nSee the\n`Java API \u003chttp://htmlpreview.github.com?http://github.com/fnl/libfsmg/blob/master/doc/index.html\u003e`_\nindex page of this library for general information,\nor the specific notes on using an\n`ExactMatcher \u003chttp://htmlpreview.github.com?http://github.com/fnl/libfsmg/blob/master/doc/es/fnl/fsm/ExactMatcher.html\u003e`_\n(a BM List matcher), the\n`ExactScanner \u003chttp://htmlpreview.github.com?http://github.com/fnl/libfsmg/blob/master/doc/es/fnl/fsm/ExactScanner.html\u003e`_\n(a KMP Iterator scanner), and on implementing the NFA\n`Pattern \u003chttp://htmlpreview.github.com?http://github.com/fnl/libfsmg/blob/master/doc/es/fnl/fsm/Pattern.html\u003e`_\nmatcher. For an example of using the pattern matcher, refer to the ``txtfnnl``\n`project \u003chttp://github.com/fnl/txtfnnl\u003e`_\nto find examples of the\n`Transition interface \u003chttp://github.com/fnl/txtfnnl/blob/master/txtfnnl-uima/src/main/java/txtfnnl/uima/pattern/TokenTransition.java\u003e`_\n, the\n`Pattern implementation \u003chttp://github.com/fnl/txtfnnl/blob/master/txtfnnl-uima/src/main/java/txtfnnl/uima/pattern/SyntaxPattern.java\u003e`_\n, and an actual\n`CFG pattern compiler \u003chttps://github.com/fnl/txtfnnl/blob/master/txtfnnl-uima/src/main/java/txtfnnl/uima/pattern/RegExParser.java\u003e`_\n.\n\nInstallation\n------------\n\nClone from github ( ``git clone git://github.com/fnl/libfsmg.git`` ),\nand run ``mvn install`` in the newly created ``libfsmg`` directory.\n\nLicense, Author and Copyright Notice\n------------------------------------\n\n**libfsmg** is free, open source software provided via a\n`Apache 2.0 License \u003chttp://www.apache.org/licenses/LICENSE-2.0.html\u003e`_ -\nsee ``LICENSE.txt`` in this directory for details.\n\nCopyright 2012, 2013 - Florian Leitner (fnl). All rights reserved.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffnl%2Flibfsmg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffnl%2Flibfsmg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffnl%2Flibfsmg/lists"}