в настоящее время мы используем apc, свободный, и был просто простой Plug and Play на наших живых серверах. Если огромное увеличение производительности для нашего сайта, тем более, что увеличенный размер проекта. У меня также есть apc.stat, отключенный, таким образом, он не проверяет, был ли код обновлен, поэтому каждый раз, когда мы должны обновить код живого сайта, мы перезапускаем апача.
Настоящий ответ заключается в том, что библиотеки нет, и вы не можете ее создать. Вы можете использовать rarfile или 7zip unRAR (который менее бесплатный, чем 7zip, но все же бесплатный, как в пиве), но оба подхода требуют внешнего исполняемого файла. Лицензия для RAR в основном требует этого, поскольку, хотя вы можете получить исходный код для unRAR, вы не можете его модифицировать каким-либо образом, и превращение его в библиотеку будет представлять собой незаконную модификацию.
Кроме того, надежные архивы RAR (наиболее сжатые) не могут быть доступны случайным образом, поэтому вам все равно придется разархивировать все это. WinRAR представляет пользовательский интерфейс, который, кажется, избегает этого, но на самом деле он просто распаковывает и переупаковывает архив в фоновом режиме.
RAR - частный формат; Я не думаю, что существуют какие-либо общедоступные спецификации, поэтому поддержка сторонних инструментов и библиотек практически отсутствует.
Вам гораздо лучше использовать ZIP; он совершенно бесплатный, имеет точную общедоступную спецификацию, библиотека сжатия доступна повсюду (zlib - одна из самых широко используемых библиотек в мире), и ее очень легко кодировать.
Посмотрите на модуль "struct" Python. Затем вы можете интерпретировать формат файла RAR непосредственно в вашей программе Python,
Библиотека pyUnRAR2 может извлекать файлы из архивов RAR в память (и на диск, если хотите). Он доступен по лицензии MIT и просто обертывает UnRAR.dll в Windows и unrar в Unix. Щелкните «QuickTutorial», чтобы просмотреть примеры использования.
В Windows он может выполнять извлечение в память (а не на диск) с помощью (включенного) UnRAR.dll, установив обратный вызов с помощью RARSetCallback () и затем вызвав RARProcessFile () с параметром RAR_TEST вместо параметра RAR_EXTRACT, чтобы Избегайте извлечения файлов на диск. Затем обратный вызов отслеживает события UCM_PROCESSDATA для чтения данных. Из документации для событий UCM_PROCESSDATA: «Обработка распакованных данных. Его можно использовать для чтения файла во время его извлечения или тестирования без фактического извлечения файла на диск».
В Unix unrar может просто распечатать файл на стандартный вывод, поэтому библиотека просто читает из канала, подключенного к stdout unrar. Вам нужен двоичный файл unrar, в котором есть "p" для команды "Print file to stdout". Используйте «apt-get install unrar», чтобы установить его в Ubuntu.