跳到主要内容

23 篇博文 含有标签「fury」

查看所有标签

· 阅读需 2 分钟
Shawn Yang

Apache Fory Logo
Our new identity: Fast Serialization Framework FOR You

Announcement

The Apache Fury team is now officially announcing that Apache Fury has been renamed to Apache Fory, effective immediately. This transition impacts all project components including code repositories, package names, documentation, and communication channels.

Why This Change Is Necessary

This transition is required to resolve naming conflicts identified by the ASF Brand Management. Following massive discussions and a formal vote, this change ensures compliance with ASF's guidelines.

The new name "Fory" preserves phonetic similarity to "Fury" while establishing a distinct identity aligned with ASF standards.

Technical Changes and Impact

This transition requires updates across the ecosystem:

  • Java packages migrated from org.apache.fury to org.apache.fory
  • Class names migrated from XXXFury/FuryXXX to XXXFory/ForyXXX
  • GitHub repositories renamed to apache/fory (code) and apache/fory-site (website)
  • Downstream integrations (Quarkus-Fury, Camel-Fury) require dependency updates
  • Mailing lists transition to @fory.apache.org

Migration Support

To facilitate this transition:

  • Existing Apache Fury release document remains intact at v0.10 document
  • Critical URL redirects in place

Why "Fory"?

The name was chosen by prioritizing:

  • Phonetic similarity to "Fury"
  • No existing trademark conflicts
  • Preservation of our technical identity
  • Short, memorable, and globally pronounceable

Our Commitment

We recognize the burden this places on our users, especially those with deep integrations. Please know:

  • All existing issues and PRs have been migrated
  • Performance benchmarks remain consistently superior
  • Release cycles continue uninterrupted

This rename represents our commitment to respecting intellectual property while maintaining technical excellence. We're grateful for your patience and continued trust as we navigate this transition together.

· 阅读需 2 分钟
Pan Li

The Apache Fury team is pleased to announce the 0.10.3 release. This is a minor release that includes 15 PR from 4 distinct contributors. See the Install Page to learn how to get the libraries for your platform.

Features

Bug Fix

Chores

Full Changelog: https://github.com/apache/fury/compare/v0.10.2...v0.10.3-rc2

· 阅读需 1 分钟
Liangliang Sui

The Apache Fury team is pleased to announce the 0.10.2 release. This is a minor release that includes 6 PR from 2 distinct contributors. See the Install Page to learn how to get the libraries for your platform.

Features

Bug Fix

Full Changelog: https://github.com/apache/fury/compare/v0.10.1...v0.10.2

· 阅读需 2 分钟
Weipeng Wang

The Apache Fury team is pleased to announce the 0.10.1 release. This is a minor release that includes 14 PR from 10 distinct contributors. See the Install Page to learn how to get the libraries for your platform.

Features

Bug Fix

Other Improvements

Full Changelog: https://github.com/apache/fury/compare/v0.10.0...v0.10.1

· 阅读需 3 分钟
Weipeng Wang

The Apache Fury team is pleased to announce the 0.10.0 release. This is a major release that includes 27 PR from 16 distinct contributors. See the Install Page to learn how to get the libraries for your platform.

Highlight

  • Chunk based map serialization
  • Highly optimized JavaScript string serialization

Features

Bug Fix

Other Improvements

New Contributors

Full Changelog: https://github.com/apache/fury/compare/v0.9.0...v0.10.0

· 阅读需 3 分钟
Shawn Yang

The Apache Fury team is pleased to announce the 0.9.0 release. This is a major release that includes 34 PR from 14 distinct contributors. See the Install Page to learn how to get the libraries for your platform.

Highlight

  • Optimized serializers for Fury kotlin support
  • Highly-optimized UTF-8 string encoding implementation for Java(2x faster than JDK utf8 encoding)
  • Reduce metastring hashcode payload for small string(<=16 bytes)
  • Support building C++ libs on windows platform

Features

Bug Fix

Other Improvements

New Contributors

Full Changelog: https://github.com/apache/fury/compare/v0.8.0...v0.9.0

Acknowledgements

Thanks @effigies @apupier @wywen @mandrean @HuangXingBo @pjfanning @chaokunyang @penguin-wwy @An-DJ @Forchapeatl @orisgarno @zhaommmmomo @caicancai @Aliothmoon

A big thank you to all our contributors who have worked hard on this release. Your contributions, whether through code, documentation, or issue reporting, are really appreciated.

· 阅读需 2 分钟
Shawn Yang

The Apache Fury team is pleased to announce the 0.8.0 release. This is a major release that includes 23 PR from 7 distinct contributors. See the Install Page to learn how to get the libraries for your platform.

Highlights

  • Support graalvm 17/21/22 native image
  • Release fury optimized serializers for scala collection
  • Reduce scala collection classname serialization cost using dict encoding

Features

Bug Fix

Other Improvements

New Contributors

Full Changelog: https://github.com/apache/fury/compare/v0.7.1...v0.8.0

Acknowledgements

Thanks @jiacai2050 @fink-arthur @sh-cho @pjfanning @chaokunyang @yoohaemin

A big thank you to all our contributors who have worked hard on this release. Your contributions, whether through code, documentation, or issue reporting, are really appreciated.

· 阅读需 2 分钟
Shawn Yang

The Apache Fury team is pleased to announce the 0.7.1 release. This is a major release that includes 20 PR from 8 distinct contributors. See the Install Page to learn how to get the libraries for your platform.

Features

Bug Fix

Other Improvements

New Contributors

Full Changelog: https://github.com/apache/fury/compare/v0.7.0...v0.7.1

Acknowledgements

Thanks @jiacai2050 @chaokunyang @theweipeng @funky-eyes @Forchapeatl @zhaommmmomo @yuluo-yx @LiangliangSui @LofiSu

A big thank you to all our contributors who have worked hard on this release. Your contributions, whether through code, documentation, or issue reporting, are really appreciated.

· 阅读需 4 分钟
Shawn Yang

The Apache Fury team is pleased to announce the 0.7.0 release. This is a major release that includes 24 PR from 7 distinct contributors. See the Install Page to learn how to get the libraries for your platform.

High Light

Experimental

Implement fast object deep copy framework for java:

Fury fury = Fury.builder().withRefCopy(true).build();
fury.register(SomeClass.class);
SomeClass a = xxx;
SomeClass copied = fury.copy(a);

Benchmark result:

BenchmarkobjectTypeScoreErrorUnits
fury_copyMEDIA_CONTENT1243297.690± 451828.452ops/s
fury_copySAMPLE2670545.816± 1378536.021ops/s
fury_copySTRUCT2673356.422± 202288.322ops/s
fury_copySTRUCT21943587.774± 392513.707ops/s
fury_copy_int_mapint map1470264.733± 1021875.257ops/s
fury_copy_listint list3556892.276± 127410.724ops/s
fury_copy_object_arrayarray4430589.112± 25366.893ops/s
fury_copy_string_mapstring map1736145.327± 377806.877ops/s
kryo_copyMEDIA_CONTENT804208.092± 27429.069ops/s
kryo_copySAMPLE717669.608± 71093.370ops/s
kryo_copySTRUCT1076048.642± 223194.146ops/s
kryo_copySTRUCT2141374.767± 14150.535ops/s
kryo_copy_int_mapint map546203.187± 54669.173ops/s
kryo_copy_listint list843643.496± 312306.921ops/s
kryo_copy_object_arrayobject array1593267.344± 1721824.436ops/s
kryo_copy_string_mapstring map574809.875± 47316.340ops/s

Features

Bug Fix

Other Improvements

New Contributors

Full Changelog: https://github.com/apache/fury/compare/v0.6.0...v0.7.0

Acknowledgements

Thanks @komamitsu @pjfanning @chaokunyang @weijiang157152688 @kitty-eu-org @urlyy @zhaommmmomo A big thank you to all our contributors who have worked hard on this release. Your contributions, whether through code, documentation, or issue reporting, are really appreciated.

Full Changelog: https://github.com/apache/fury/compare/v0.6.0...v0.7.0

· 阅读需 5 分钟
Shawn Yang

The Apache Fury team is pleased to announce the 0.6.0 release. This is a major release that includes 35 PR from 12 distinct contributors. See the Install Page to learn how to get the libraries for your platform.

High light

In this release, we introduced a scoped meta share mode for schema evolution in java and enabled it by default when CompatibleMode is set to Compatible:

  • This mode is 50% faster than previous KV compatible mode, and only 1/6 size of serialized payload than before.
  • It's 4x faster than protobuf, less than 1/2 serialized size of protobuf for complex object.

PerfomanceSize

Protobuf/JSON will write message fields meta and values in a KV layout, so when serializzing a list of message, they will have two issues:

  • Write meta multiple times even those message are the same type.
  • KV layout is dispersive, which is not friendly for compression.

The meta share mode will write field name&type meta of a struct only once for multiple objects of same type, which will save space and improve performance comparedto protobuf.

With meta share, we can write field name&type meta of a struct only once for multiple objects of same type, which will save space and improve performance comparedto protobuf. And we can also encode the meta into binary in advance, and use one memory copy to write it which will be much faster.

Serialize data

  public static class NumericStruct {
public int f1;
public int f2;
public int f3;
public int f4;
public int f5;
public int f6;
public int f7;
public int f8;

public static NumericStruct build() {
NumericStruct struct = new NumericStruct();
struct.f1 = 1;
struct.f2 = 2;
struct.f3 = 3;
struct.f4 = 4;
struct.f5 = 5;
struct.f6 = 6;
struct.f7 = 7;
struct.f8 = 8;
return struct;
}
}

public static class NumericStructList {
public List<NumericStruct> list;

public static NumericStructList build() {
NumericStructList structList = new NumericStructList();
structList.list = new ArrayList<>(1000);
for (int i = 0; i < 1000; i++) {
structList.list.add(NumericStruct.build());
}
return structList;
}

Result

Performance:

Benchmark                       Mode  Cnt      Score      Error  Units
fury_deserialize thrpt 30 49667.900 ± 3004.061 ops/s
fury_kv_compatible_deserialize thrpt 30 33014.595 ± 3716.199 ops/s
fury_kv_compatible_serialize thrpt 30 23915.260 ± 3968.119 ops/s
fury_serialize thrpt 30 63146.826 ± 2930.505 ops/s
protobuf_deserialize thrpt 30 14156.610 ± 685.272 ops/s
protobuf_serialize thrpt 30 10060.293 ± 706.064 ops/s

Size:

LibSerialized Payload Size
fury8077
furystrict8009
furykv48028
protobuf18000

Feature

Bug Fix

Others

New Contributors

Full Changelog: https://github.com/apache/fury/compare/v0.5.1...v0.6.0