{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/regex/issues/66","labels_url":"https://api.github.com/repos/rust-lang/regex/issues/66/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/regex/issues/66/comments","events_url":"https://api.github.com/repos/rust-lang/regex/issues/66/events","html_url":"https://github.com/rust-lang/regex/issues/66","id":65578767,"number":66,"title":"implement a DFA matcher","user":{"login":"BurntSushi","id":456674,"avatar_url":"https://avatars.githubusercontent.com/u/456674?v=3","gravatar_id":"","url":"https://api.github.com/users/BurntSushi","html_url":"https://github.com/BurntSushi","followers_url":"https://api.github.com/users/BurntSushi/followers","following_url":"https://api.github.com/users/BurntSushi/following{/other_user}","gists_url":"https://api.github.com/users/BurntSushi/gists{/gist_id}","starred_url":"https://api.github.com/users/BurntSushi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BurntSushi/subscriptions","organizations_url":"https://api.github.com/users/BurntSushi/orgs","repos_url":"https://api.github.com/users/BurntSushi/repos","events_url":"https://api.github.com/users/BurntSushi/events{/privacy}","received_events_url":"https://api.github.com/users/BurntSushi/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/regex/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/rust-lang/regex/labels/help%20wanted","name":"help wanted","color":"159818"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-01T01:03:37Z","updated_at":"2015-06-01T15:34:16Z","closed_at":null,"body":"One of the reasons why RE2/C++ is so fast is because it has two implementations of regex matching: a limited DFA matcher (no sub-capture support) and a full NFA simulation. This crate has the latter, but not the former.\r\n\r\nAdding a DFA matcher should be an implementation detail and shouldn't require any public facing changes.\r\n\r\nThis is a pretty involved project. I hope to find time to do this some day, but if someone else wants to tackle it, I'd be happy to help mentor it. (Part of this will be figuring out how to handle the `regex!` macro. Do we replicate the DFA there too like we do the NFA?)"},"comment":{"url":"https://api.github.com/repos/rust-lang/regex/issues/comments/107587638","html_url":"https://github.com/rust-lang/regex/issues/66#issuecomment-107587638","issue_url":"https://api.github.com/repos/rust-lang/regex/issues/66","id":107587638,"user":{"login":"WillEngler","id":6283143,"avatar_url":"https://avatars.githubusercontent.com/u/6283143?v=3","gravatar_id":"","url":"https://api.github.com/users/WillEngler","html_url":"https://github.com/WillEngler","followers_url":"https://api.github.com/users/WillEngler/followers","following_url":"https://api.github.com/users/WillEngler/following{/other_user}","gists_url":"https://api.github.com/users/WillEngler/gists{/gist_id}","starred_url":"https://api.github.com/users/WillEngler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WillEngler/subscriptions","organizations_url":"https://api.github.com/users/WillEngler/orgs","repos_url":"https://api.github.com/users/WillEngler/repos","events_url":"https://api.github.com/users/WillEngler/events{/privacy}","received_events_url":"https://api.github.com/users/WillEngler/received_events","type":"User","site_admin":false},"created_at":"2015-06-01T15:34:16Z","updated_at":"2015-06-01T15:34:16Z","body":"I'll do it!\r\n\r\n@BurntSushi recommends that I look into an [existing DFA engine](https://github.com/carllerche/automaton) by @carllerche.\r\n\r\nI'll be starting by getting familiar with the code in this repo and [RE2](https://github.com/google/re2)."}}