项链/xxhash-ffi

libxxhash的FFI绑定

1.0.1 2020-01-15 07:10 UTC

This package is not auto-updated.

Last update: 2023-10-05 20:47:35 UTC


README

这是来自xxHashlibxxHash库在PHP中的FFI绑定。

你在这里是因为

  • 你需要在PHP中使用xxHash
  • 你不想安装扩展。
  • 你可以将系统上的xxhash包安装为libxxHash。
  • 你想要速度,或者至少比纯PHP实现xxHash更快。

如果是这样,你就来对地方了。

入门

设置

显然,你需要xxHash包。此外,你还需要libffi,并启用PHP的FFI(因此你需要PHP 7.4或更高版本)。libxxhash需要是v0.6.4或更高版本。

以下是常见的安装方法

  • Arch GNU/Linux: sudo pacman -S xxhash libffi
  • Debian / Ubundu: sudo apt install xxhash libffi
  • Fedora: sudo dnf install xxhash libffi
  • OpenSUSE: sudo zypper install xxhash libffi

PHP必须使用--with-ffi选项编译,大多数发行版都会这么做。

在您的系统上找到相关的php.ini文件,并确保这两行存在且已取消注释

extension=ffi
ffi.enable=true

然后,只需将绑定添加到您的项目中

composer require necklace/xxhash-ffi

让我来计算散列值吧!

好吧,好吧。我知道你想要什么,我也知道你需要什么。你有文件,我们有散列值

散列文件

<?php

use Necklace\XxHash\XxHash64;

$xxh = new XxHash64;

echo $xxh->hashFile('filename');

cee0f97cde3a4cda

嘿,我想要最新、最快、最好的!

这个库支持XXH3算法,你可以使用它,但请注意;它仍然被标记为实验性:这个版本的返回值与其他版本不可比。

<?php

use Necklace\XxHash\Xxh3\XxHash64;

$xxh = new XxHash64;

echo $xxh->hashFile('filename');

db70939c6397e562

tests/目录中查看更多示例。

许可证

此存储库及其所有文件均受xxHash项目相同的许可证约束;BSD 2-Clause License

查看COPYING或LICENSE.txt。

开发

克隆并运行composer install

记得运行~/.config/composer/vendor/bin/php-cs-fixer fix src/

测试

从顶级目录运行所有测试:php vendor/bin/phpunit

使用vendor/bin/roave-no-leaks在测试中检测内存泄漏。