# Features export const Supported = () => (); export const Partial = ({children = "Partial"}) => ( {children} ); export const InProgress = () => ( In progress ); export const Unsupported = () => (); The following tables document the current level of support for each Thrift feature in different languages. | Thrift feature | C++ | Hack | Java | Python | | :------------- | :-: | :--: | :--: | :----: | | [Serialization](/features/serialization/index.md) | | | | | | [Universal names](/features/universal-name.md) | | | | | | [Streaming](/fb/features/streaming/index.md) | | Client[^1] | Client[^1] | | | [Interactions](/fb/features/interactions.md) | | Client[^1] | Client[^1] | Client[^1] | | [Adapters](/features/adapters.md) | | | | | | [Dynamic values (Any)](/features/any.md) | | | | | | [Terse write](/features/terse-write.md) | | | | | [^1]: You can write Thrift clients but not servers using this feature. These clients can connect to servers written in other languages. Experimental features: | Thrift feature | C++ | Hack | Java | Python | | :------------- | :-: | :--: | :--: | :----: | | [Patch](/features/patch/patch.md) | | | | | | [Deterministic Hashing](/fb/languages/cpp/hash.md) | | | | | The level of support of a feature in a given language is defined as follows: | Symbol | Meaning | | :----: | :------ | | | Fully supported by Thrift | | | Under development | | <status> | Partially supported with the given status | | | Not supported |