{"action":"created","issue":{"url":"https://api.github.com/repos/Project-OSRM/osrm-backend/issues/1974","repository_url":"https://api.github.com/repos/Project-OSRM/osrm-backend","labels_url":"https://api.github.com/repos/Project-OSRM/osrm-backend/issues/1974/labels{/name}","comments_url":"https://api.github.com/repos/Project-OSRM/osrm-backend/issues/1974/comments","events_url":"https://api.github.com/repos/Project-OSRM/osrm-backend/issues/1974/events","html_url":"https://github.com/Project-OSRM/osrm-backend/issues/1974","id":133368638,"number":1974,"title":"Switch profiles from Lua to library interface","user":{"login":"TheMarex","id":606968,"avatar_url":"https://avatars.githubusercontent.com/u/606968?v=3","gravatar_id":"","url":"https://api.github.com/users/TheMarex","html_url":"https://github.com/TheMarex","followers_url":"https://api.github.com/users/TheMarex/followers","following_url":"https://api.github.com/users/TheMarex/following{/other_user}","gists_url":"https://api.github.com/users/TheMarex/gists{/gist_id}","starred_url":"https://api.github.com/users/TheMarex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheMarex/subscriptions","organizations_url":"https://api.github.com/users/TheMarex/orgs","repos_url":"https://api.github.com/users/TheMarex/repos","events_url":"https://api.github.com/users/TheMarex/events{/privacy}","received_events_url":"https://api.github.com/users/TheMarex/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/Project-OSRM/osrm-backend/milestones/2","html_url":"https://github.com/Project-OSRM/osrm-backend/milestones/5.0","labels_url":"https://api.github.com/repos/Project-OSRM/osrm-backend/milestones/2/labels","id":41286,"number":2,"title":"5.0","description":"","creator":{"login":"DennisOSRM","id":1067895,"avatar_url":"https://avatars.githubusercontent.com/u/1067895?v=3","gravatar_id":"","url":"https://api.github.com/users/DennisOSRM","html_url":"https://github.com/DennisOSRM","followers_url":"https://api.github.com/users/DennisOSRM/followers","following_url":"https://api.github.com/users/DennisOSRM/following{/other_user}","gists_url":"https://api.github.com/users/DennisOSRM/gists{/gist_id}","starred_url":"https://api.github.com/users/DennisOSRM/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DennisOSRM/subscriptions","organizations_url":"https://api.github.com/users/DennisOSRM/orgs","repos_url":"https://api.github.com/users/DennisOSRM/repos","events_url":"https://api.github.com/users/DennisOSRM/events{/privacy}","received_events_url":"https://api.github.com/users/DennisOSRM/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":60,"state":"open","created_at":"2011-09-27T07:10:24Z","updated_at":"2016-02-13T18:23:05Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2016-02-12T23:26:42Z","updated_at":"2016-02-15T09:38:38Z","closed_at":null,"body":"Instead of relying on Lua for our profile needs I would like to change the interface of `libosrm_extract` to:\r\n\r\n```\r\nExtractor::Run(const Profile& profile)\r\n```\r\n\r\n```\r\nclass Profile\r\n{\r\n    virtual ~Profile() = default;\r\n\r\n    virtual ExtractionWay processWay(const osmium::Way&) = 0;\r\n    virtual ExtractionNode processNode(const osmium::Node&) = 0;\r\n    virtual double processSegment(const Segment&) = 0;\r\n}\r\n```\r\n\r\nThis abstract over calling lua directly. `osrm-extract` can implement a `Profile` that uses all the current scripting code contained in `libosrm_extract` to be backward compatible in the meantime.\r\n\r\nLong term goal is to _drop_ Lua as a dependency. Profiles will be moved to the `node-osrm` side and will be implemented in JS."},"comment":{"url":"https://api.github.com/repos/Project-OSRM/osrm-backend/issues/comments/184134013","html_url":"https://github.com/Project-OSRM/osrm-backend/issues/1974#issuecomment-184134013","issue_url":"https://api.github.com/repos/Project-OSRM/osrm-backend/issues/1974","id":184134013,"user":{"login":"emiltin","id":66034,"avatar_url":"https://avatars.githubusercontent.com/u/66034?v=3","gravatar_id":"","url":"https://api.github.com/users/emiltin","html_url":"https://github.com/emiltin","followers_url":"https://api.github.com/users/emiltin/followers","following_url":"https://api.github.com/users/emiltin/following{/other_user}","gists_url":"https://api.github.com/users/emiltin/gists{/gist_id}","starred_url":"https://api.github.com/users/emiltin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emiltin/subscriptions","organizations_url":"https://api.github.com/users/emiltin/orgs","repos_url":"https://api.github.com/users/emiltin/repos","events_url":"https://api.github.com/users/emiltin/events{/privacy}","received_events_url":"https://api.github.com/users/emiltin/received_events","type":"User","site_admin":false},"created_at":"2016-02-15T09:38:38Z","updated_at":"2016-02-15T09:38:38Z","body":"What timeline do you envision for moving profiles to JS? I started some refactoring of the LUA profiles, but wonder if it's still relevant."}}