Портирование mod_pagespeed на другую систему

Вы хотите перенести mod_pagespeed на другой сервер или интегрировать его в другую систему? Большой! Мы разработали mod_pagespeed как модульный и почти полностью независимый от Apache. Единственный специфичный для Apache код находится в net/instaweb/apache .

Если вы посмотрите на наш исходный код , наш основной код находится в net/instaweb/ :

  • util/ и http/ содержат многие из наших основных инструментов, включая абстрактные базовые классы, такие как MessageHandler , Timer и UrlFetcher . Есть несколько примеров реализации, но многие из них вам придется реализовать самостоятельно.
  • htmlparse/ содержит основной парсер HTML. Вы вообще не должны с этим сталкиваться.
  • rewriter/ имеет фильтры перезаписи и фреймворк. Центральной точкой интеграции здесь является частично абстрактный класс RewriteDriverFactory . Ваши усилия по интеграции начнутся с его подкласса и реализации его чисто виртуальных методов.

Возможно, вам придется реализовать порт для следующих классов (см. примеры реализации в каталоге apache/ ):

Затем, чтобы фактически вызвать код, вам нужно создать FooRewriteDriverFactory для создания всех ваших объектов, а затем StartParseWithType(url, content_type) , ParseText(text) между каждым сбросом сервера и FinishParse() для каждого запроса.

Пожалуйста, напишите в наш список рассылки разработчиков , если вы изучаете это или у вас есть какие-либо проблемы. Мы не гарантируем, что какие-либо внутренние интерфейсы останутся прежними, поэтому мы можем легко сломать ваш порт, если не будем знать, что вы их используете.