quarkiverse / quarkus-fury

A blazingly fast multi-language serialization framework powered by JIT and zero-copy.
https://docs.quarkiverse.io/quarkus-fury/dev
Apache License 2.0
6 stars 1 forks source link

How to configure Language. #39

Closed JackyAnn closed 5 days ago

JackyAnn commented 1 week ago

The default language is Language.Java How to set Language to Language.XLANG

I didn't find any configuration in FuryBuildTimeConfig either!

zhfeng commented 1 week ago

No, there is no such configuration currently. Just curious, what are your requirement to use XLANG?

JackyAnn commented 1 week ago

Fury designed and implemented multiple binary protocols for different scenarios:

  • xlang serialization format:
    • Cross-language serialize any object automatically, no need for IDL definition, schema compilation and object to/from protocol conversion.
    • Support optional shared reference and circular reference, no duplicate data or recursion error.
    • Support object polymorphism.
  • Java serialization format: Highly-optimized and drop-in replacement > for Java serialization.
  • Row format format: A cache-friendly binary random access format, > supports skipping serialization and partial serialization, and can convert to column-format automatically.

I'm going to use fury to replace json in our web project. This will require support for serialization in at least two languages, java and javascript. Also go, python is becoming more and more popular in the backend and it's becoming more and more common to have a mixed language stack in microservices.

If I understand correctly, according to the documentation, the cross-language should use the xlang serialization format

zhfeng commented 1 week ago

@chaokunyang can you check it? I think we can add such Language Configuration but you maybe know more details.

chaokunyang commented 1 week ago

The xlang serialization in Fury Java doesn't support graalvm yet. Currently only Fury Java serialization protocol support graalvm. We are working on xlang format for graalvm, But it may still needs several weeks

zhfeng commented 1 week ago

So it should be good to introduce such Language Configuraion which we can support both JAVA and XLANG?

chaokunyang commented 1 week ago

Yeah, We should introduce this configuration option