Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

js版patch实现 #78

Open
sisong opened this issue Nov 5, 2018 · 8 comments
Open

js版patch实现 #78

sisong opened this issue Nov 5, 2018 · 8 comments
Labels

Comments

@sisong
Copy link
Owner

sisong commented Nov 5, 2018

内存版比较容易实现,但stream流式版本比较困难
支持解压多种压缩格式也会遇到一些麻烦;

ps: java\C#等版本?

@sisong sisong changed the title P3 js版patch实现 js版patch实现 Dec 16, 2018
@sisong sisong added the P3 label Dec 16, 2018
@boboshu
Copy link

boboshu commented Sep 2, 2022

能有C#版就好了!!期待

@sisong
Copy link
Owner Author

sisong commented Sep 2, 2022

暂时没有开发计划
C# 中,可以用 Native API 的方式调用。我们在untiy3D里这样用,很方便。
window下用vs,也可以把C代码编译为CLI(托管方式)。

@xblxc
Copy link

xblxc commented Jul 2, 2024

内存版比较容易实现,但stream流式版本比较困难 支持解压多种压缩格式也会遇到一些麻烦;

ps: java\C#等版本?

内存版比较容易实现是指什么?现在好想把这个库引入到js中使用,但是能力有限,不知如何下手

@sisong
Copy link
Owner Author

sisong commented Jul 3, 2024

数据如果都在内存,代码写起来就会比较简单; 而如果输入输出数据都不完整的在内存(即流)中,那代码实现起来就会复杂一些。 js我几乎没有用过,看起来需求场景也比较少吧?不知道你用在什么场景下?

@sisong
Copy link
Owner Author

sisong commented Jul 3, 2024

能有C#版就好了!!期待

这里有一个C#的patch实现版本: https://github.com/CollapseLauncher/SharpHDiffPatch.Core

@xblxc
Copy link

xblxc commented Jul 4, 2024

数据如果都在内存,代码写起来就会比较简单; 而如果输入输出数据都不完整的在内存(即流)中,那代码实现起来就会复杂一些。 js我几乎没有用过,看起来需求场景也比较少吧?不知道你用在什么场景下?

想用在网页里文件上传的场景中(文件存在多版本,每次上传属于文件更新的那种),实现仅上传差异部分,提升上传效率。不知能否实现

@sisong
Copy link
Owner Author

sisong commented Jul 5, 2024

@xblxc
本地多个版本(或类似连续编辑),只通过网页上传更新的部分; 这个需求肯定能做到(也有类似这样做的),但这需要在客户端计算出差异(即执行复杂的diff运算,而不是简单的patch算法);
这样的话,移植HDiffPatch的diff算法就不划算了(可能代码量太大),不如新写一个js版本的diff算法(可以借鉴hdiffz -s的思路)。

@xblxc
Copy link

xblxc commented Jul 5, 2024

@xblxc 本地多个版本(或类似连续编辑),只通过网页上传更新的部分; 这个需求肯定能做到(也有类似这样做的),但这需要在客户端计算出差异(即执行复杂的diff运算,而不是简单的patch算法); 这样的话,移植HDiffPatch的diff算法就不划算了(可能代码量太大),不如新写一个js版本的diff算法(可以借鉴hdiffz -s的思路)。

好的,非常感谢!我按这个思路去研究研究~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants