google/crc32 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

google/crc32

最新稳定版本:v0.2.0

Composer 安装命令:

composer require google/crc32

包简介

Various CRC32 implementations

README 文档

README

Build Status

by Andrew Brampton

Deprecated: Since PHP 8.0, the crc32 algorithms within PHP are using hardware accelerated instructions, and are surprisingly fast. Thus this extension is not needed anymore!

CRC32 implementations, that support all crc32 polynomials, as well as (if you install the pecl extension) hardware accelerated versions of CRC32C (Castagnoli).

Supports PHP 7.4 though PHP 8.2. Older PHP versions are supported with "v0.1.0".

Usage

require 'vendor/autoload.php';

use Google\CRC32\CRC32;

$crc = CRC32::create(CRC32::CASTAGNOLI);
$crc->update('hello');
echo $crc->hash();

Depending on the environment and the polynomial, CRC32::create will choose the fastest available version, and return one of the following classes:

  • Google\CRC32\PHP - A pure PHP implementation.
  • Google\CRC32\Builtin - A PHP Hash framework implementation.
  • Google\CRC32\Google - A hardware accelerated implementation (using google/crc32c).

When reading 1M byte chunks, using CRC32::CASTAGNOLI with PHP 7.4 on a 2014 Macbook Pro we get the following performance (higher is better):

Google\CRC32\PHP           12.27 MB/s
Google\CRC32\Builtin       468.74 MB/s (available since PHP 7.4)
Google\CRC32\Google        24,684.46 MB/s (using crc32c.so)

Install

$ composer require google/crc32

crc32c.so

To use the hardware accelerated, a custom PHP extension must be installed. This makes use of google/crc32c which provides a highly optomised CRC32C (Castagnoli) implementation using the SSE 4.2 instruction set of Intel CPUs.

The extension can be installed from pecl, or compiled from stratch.

TODO pecl install crc32c

Once installed or compiled, you'll need to add extension=crc32c.so to your php.ini file.

Compile (Linux / Mac)

Ensure that composer, build tools (e.g build-essential, cmake, etc), and php dev headers (e.g php-dev) are installed.

Simple (using Makefile):

make test

Alternatively (manually):

cd ext

# Install the google/crc32c library
./install_crc32c.sh # From source (recommended)

# or use your favorite package manager, e.g.
# brew install crc32c

# Prepare the build environment
phpize
./configure

# or if using a custom crc32c
# ./configure --with-crc32c=$(brew --prefix crc32c)

## Build and test
make test

The extension will now be at ext/modules/crc32c.so. This file should be copied to your extension directory and reference in your php.ini.

# php.ini
extension=crc32c.so

Testing

make test will test with the current PHP. make test_all will search for available PHP installs, and test with all of them.

Benchmark

To compare the performance of the different CRC32C implementations, run make benchmark.

Related

TODO

Licence (Apache 2)

This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.

Copyright 2023 Google Inc. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

google/crc32 适用场景与选型建议

google/crc32 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 53.4M 次下载、GitHub Stars 达 187, 最近一次更新时间为 2026 年 01 月 04 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 google/crc32 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 google/crc32 我们能提供哪些服务?
定制开发 / 二次开发

基于 google/crc32 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 53.4M
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 188
  • 点击次数: 11
  • 依赖项目数: 6
  • 推荐数: 0

GitHub 信息

  • Stars: 187
  • Watchers: 2
  • Forks: 14
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2026-01-04