Оперативное реализация преобразования (не JavaScript) [закрыто

StackOverflow https://stackoverflow.com/questions/4184286

Вопрос

Я хочу внедрить многопользовательский оперативное преобразование Просто для простых текстовых изменений на стороне сервера на веб-сайте.

Есть ли реализация не Javascript, которую вы можете порекомендовать?

Это было полезно?

Решение

Рассмотрим Google-Diff-Match-Patch-Diff, Match и Patch Libraries для простого текста:

«Библиотеки Diff Match и Patch предлагают надежные алгоритмы для выполнения операций, необходимых для синхронизации простого текста».

DIFF: Сравните два блока простого текста и эффективно верните список различий.

Diff Demo Match: Учитывая строку поиска, найдите его лучшее нечеткое совпадение в блоке простого текста. Взвешен как для точности, так и для местоположения.

Сопоставьте демо -патч: примените список патчей на простой текст. Используйте наиболее эффективные для применения патча, даже если базовый текст не соответствует.

Патч демонстрация в настоящее время доступна в Java, JavaScript, C ++, C#, Objective C, Lua и Python. Независимо от языка, каждая библиотека имеет одинаковый API и одинаковую функциональность. Все версии также имеют всеобъемлющие тестовые жгуты.

Вы можете найти это здесь.

Другие советы

Рассмотрим py-infinote.

Py-Infinote-это порт Python Jinfinote, предлагающий совместный протокол редактирования текста (принятый), который можно использовать для написания многопользовательских редакторов совместного текста. Py-Infinote используется в проекте HWIOS.

https://github.com/sveith/jinfinote

Это еще одна довольно интересная реализация, интегрирующая оперативное преобразование Google Wave с Jedit:

https://github.com/djspiewak/cccp

OpenCoweb - популярная реализация OT. Есть несколько реализаций сервера, написанных на разных языках.

Простая справочная реализация, которую я буду улучшать в ближайшие несколько месяцев, добавив более сложные вещи;

Теперь есть:

  • Простые текстовые операции; сохранить, вставить, удалить и их преобразования друг против друга
  • аннотации по тексту и преобразованиям
  • генерация изменений и применение их к тексту

https://github.com/slevental/operational-transformation

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top