Phiwrapper

打包胖“二进制”的工具
授权协议 Apache
开发语言
所属分类 应用工具、 操作系统工具
软件类型 开源软件
地区 国产
投 递 者 闾丘才哲
操作系统 Windows
开源组织
适用人群 未知
 软件概览

phiwrapper 是一个用于打包胖“二进制”的工具

phiwrapper可以通过batsh使得同一文件包含不同平台的二进制,可以在不同平台运行:例如,使用phiwrapper打包 Windows 的 PHP PE 二进制和,linux的ELF二进制以及php代码,在Windows下可以双击运行file.bat文件开启服务,linux下可以用sh ./file.bat运行相同的PHP代码

目前phiwrapper支持Windows 7+和x86_64的linux、macOS系统

TODOs && WIPs

  • zip.js -- zip.js 还没有实现,你需要手动打包code和bin目录的zip到build/build.zip
  • 支持命令行参数、完整的清理、提升权限...
  • 测试和自动化测试
  • x86 unix-like系统兼容
  • 更多架构系统兼容
  • unzip体积裁剪

打包用法

依赖(Windows)

没有依赖

依赖(Unix-like)

需要nodejs

准备二进制文件

准备phiwrapper的二进制到tools目录

git clone https://github.com/longyan/phiwrapper_binaries tools

自行准备需要的二进制放置于任意子目录

例如从windows.php.net下载windows PHP二进制包,解压到bin/win

静态编译linux的php,放在bin/linuxx64

准备代码

将平台无关的代码放在任意子目录(例如code/index.html, code/hello.php)

配置

复制config.js.example为config.js, 参照文件内容创建配置

打包

mkwrapper.bat
./mkwrapper.sh

限制

phiwrapper仅仅是将多个二进制文件置于压缩包中,并非类似Mach-O的原生胖二进制,因此文件体积较大,建议针对性对要包含的二进制文件进行裁剪。

青岛龙之言软件有限责任公司由国内著名的 Swoole团队和 禅道团队合资成立。Swoole团队是业内知名的PHP底层开发团队,为PHP贡献了协程、加密、监控等多种方案,有力地弥补了PHP在高并发高性能场景的短板。禅道团队是PHP语言的重度用户,先后使用PHP语言开发了四款开源软件。两个团队在PHP社区上都有深厚的感情,都想为PHP社区做些自己的贡献。于是就诞生了龙之言这个公司。

龙之言公司主要的使命就是弥补PHP的短板,完善PHP的生态,为中国的PHP用户提供有力的技术支持。我们主要的工作方向有如下几个:

  • 提高PHP在高性能高并发场景的适用性
  • 适配国产化操作系统
  • 完善各种类库
  • 加强PHP对人工智能场景的支持
  • 加强PHP在物联网场景的支持
  • 加强PHP在打包安装方面的支持

我们的项目将主要以开源的方式来进行发布,如果您有什么好的想法,或者痛点,或者想参与到我们的开发中来,欢迎和我们联系。我们的联系方式: guoxinhua@swoole.com

 相关资料
  • CocoaPods 二进制打包 cocoapods-package 处理过程: 通过pod package xxx.podspec解析podspec, 根据podspec内指定的版本去git找对应资源下载 执行xcodebuild构建framework 存在弊端: 当选择 .a形式作为产物时,我们podspec中所指定的.h并不会被正确拷贝到目标文件夹。 该组件对 subspec 的处理较为暴力,

  • 要安装 Ceph 及其依赖软件,你需要参考本手册从 Ceph 软件库下载,然后继续看安装 Ceph 对象存储。 获取软件包 有两种方法获取软件包: 增加源: 增加源是获取二进制包的最简方法,因为多数情况下包管理工具都能自动下载、并解决依赖关系。然而,这种方法要求各 Ceph 节点都能连接互联网。 手动下载: 如果你的环境不允许 Ceph 节点访问互联网,手动下载软件包安装 Ceph 也不复杂。 准

  • 我想制作一个Rust包,它既包含一个可重用库(大部分程序都在这里实现),也包含一个使用它的可执行文件。 假设我没有混淆 Rust 模块系统中的任何语义,我的 文件应该是什么样子的?

  • 问题内容: 我正在用Go编写图书馆。我打算分发它,并且主要要求是“ 没有源代码 ”。 为了进行测试,我创建了两个工作区,如下所示, WS1 箱/ pkg / linux_amd64 / lib.a src / lib / src.go WS2 箱/ 公斤/ src / main / main.go 我的第一个工作区(WS1)是实际的虚拟库,它具有一些实用程序功能。第二工作空间(WS2)具有使用WS

  • 下载二进制安装包 wget https://github.com/XiaoMi/soar/releases/download/${tag}/soar.${OS}-amd64 -O soar chmod a+x soar 如: wget https://github.com/XiaoMi/soar/releases/download/0.9.0/soar.linux-amd64 -O soar ch

  • 主要内容:Java16 打包工具的示例Java 14 引入了一个新的打包工具,基于 javapackager 的 jpackage。javapackager 是在 Java 8 中引入的,是 JavaFX 套件的一部分。由于 JavaFX 从 11 版本的 Java 中分离出来,因此该打包工具在标准产品中不再可用。 这个新工具旨在为操作系统提供本机安装程序。例如,Windows 的 msi/exe,MacOS 的 pkg/dmg,Li