Я как-то писал о супер библиотеке моего друга BlooDHounD, в которой реализованы разные полезные алгоритмы с огромным приростом скорости по сравнению с аналогами. Так вот, какое-то время назад у нее случился значительный апдейт, о котором вы сможете узнать на официальном сайте blooddy.by/ru/crypto/. И не забудьте зафоловить товарища, чтобы своевременно получать сообщения о новых апдейтах!
что новенького:
- поправлены мелкие баги
- по мелочам заоптимизированы текущие алгоритмы
- для PNG8 появилась новая палитра LevelsPalette
- перед PNG-сжатием картинки теперь проверяется на прозрачность не только флагом transparent, но и существованием прозрачных пикселей ( прозрачные картинки сжимаются медленнее )
- добавлены SHA-1 и SHA-2 ( 224, 256 )
- добавлена (де)сериализация JSON-данных
моя реализация JSON довольно сильно отличается от реализации в as3corelib. декодер всегда работает в “мягком” режиме, допуская не используемые в стандарте конструкции:
- поддерживается значения undefined и NaN
- строки можно оборачивать как в двойные кавычки, так и в одинарные
- у строк кроме \u0000 поддерживается и \x00
- ключи у объекта не обязательно должны быть строками: { key: “value” }
- у массивов допускаются пустые элементы: [1,,,5,'asd']
- количество нулей в начале числа не ограничивается 1
- число может начинаться с точки: .5
- число может быть записано в hex-виде: 0xFF
отличия энкодеров:
- при попытки закодировать замкнутые на себе объекты, выбрасывается StackOverflowError
- XML-объекты кодируются как string
- Vector‘ы кодируются как массивы
- вырезаются последние элементы массивов, если в них содержатся null или undefined
- у экземпляров классов константы тоже кодируются. исключать их можно так же как и всё остальные поля: метатэгом Transient.
- у экземпляров классов поля с пространством имён отличным от public игнорируются.
SHA правильно работает с UTF-8 в отличии от аналогов из as3corelib.
