Skip to content

Tags: facebook/fbthrift

Tags

v2025.12.15.00

Toggle v2025.12.15.00's commit message
Add fixture coverage for Java deprecated legacy reflection client

Reviewed By: yoney

Differential Revision: D89079298

fbshipit-source-id: 2be0e2012767a90b58acbf76785f902374f1fb42

v2025.12.01.00

Toggle v2025.12.01.00's commit message
Remove legacy scheduler flags

Summary: The thread pool and fork join pool threads based flags have been replace with schedule flags, this is the final diff necessary to remove the old flags.

Reviewed By: RayanRal

Differential Revision: D88016443

fbshipit-source-id: efa75358358d37b35d546e7d8dc5793763c2e8aa

v2025.11.24.00

Toggle v2025.11.24.00's commit message
fix windows build setuptools error

Summary:
X-link: facebook/watchman#1316

The upgrade of setuptools in D79195099 broke pywatchman  build,  Github windows CI erroring with  `AttributeError: module 'setuptools.dist' has no attribute 'check_test_suite'` https://github.com/facebook/watchman/actions/runs/19440507973/job/55622405533#step:131:1188 .  It was only affecting windows as only windows CI is building dependencies form source, the others use system dependencies.

Fix by pinning watchman to the previous setuptools version

Fix to help iterate locally:
*  fix the cargo.py remove behaviour to use rmtree_more.  This fixes repeat local builds while debugging. After the first build was getting `PermissionError: [WinError 5] Access is denied: 'Z:\build\fbthrift\source\.git\objects\pack\pack-250eb41d409d8c0f512fdb239d0225fa35d50c3d.idx'`

Reviewed By: bigfootjon

Differential Revision: D87655865

fbshipit-source-id: 8948b0ffe38f304fa96051bf6ac3a0455ef1a16e

v2025.11.17.00

Toggle v2025.11.17.00's commit message
Add the ability to generate metadata from service recursively

Reviewed By: iahs

Differential Revision: D86583543

fbshipit-source-id: 21a72caa8ecbb9c03f670a9f4442a443cca0cbf2

v2025.11.10.00

Toggle v2025.11.10.00's commit message
Enable Lazy Validation for Map Elements in Thrift Python

Summary:
This diff introduces **lazy validation** for Thrift Python map containers, building on similar ideas from the earlier diff (D85609088), which implemented lazy validation for sets with string elements.

**Lazy Validation for Maps:**

Adds logic to check if both `key` and `value` types in a map support in-place validation (i.e., they do not require conversion, or are strings).
If both types support in-place validation, the map's internal elements are validated in-place without reconstructing a new dictionary.
This optimization is particularly beneficial for maps like map<i64, string> or map<string, string>, where conversion is unnecessary and only validation is needed.

**Performance wins**:
 {F1983373834}

Reviewed By: yoney

Differential Revision: D86603666

fbshipit-source-id: aa73993a91f1fb9f8e1d333dc75fefff10b233d1

v2025.11.03.00

Toggle v2025.11.03.00's commit message
Comment out noisy log

Summary: https://www.internalfb.com/diff/D85509369?dst_version_fbid=752418134488635&transaction_fbid=1185871093430732

Reviewed By: siutsin

Differential Revision: D86085964

fbshipit-source-id: 93521ec5ae7d6f6ce288dc45a85700ba19a07350

v2025.10.27.00

Toggle v2025.10.27.00's commit message
Adding more benchmark tests for maps

Summary: Adding more bencemark tests for map.

Reviewed By: yoney

Differential Revision: D85526310

fbshipit-source-id: 1e5ac71fae17691061683256a351ad7999ac999b

v2025.10.20.00

Toggle v2025.10.20.00's commit message
Disable keep-alive thread

Summary:
Non-daemon keep-alive thread in Cosco server caused Spark jobs to get stuck, unable to shutdown JVM after all app threads have completed.
As previously Cosco worked fine without a keep-alive thread in ServiceFramework, and Spark relies on this behaviour - adding an option to turn it off.

Reviewed By: adolfojunior

Differential Revision: D84054824

fbshipit-source-id: 203108fe93ab08f5efea7b92b05929f5014ae818

v2025.10.13.00

Toggle v2025.10.13.00's commit message
Fix errors that relate to the use of internal.InjectMetadataFields

Summary:
This change addresses undefined symbol errors that occur when `internal.InjectMetadataFields` injects types from external programs. The annotation creates cross-program type dependencies that expose a fundamental gap in the thrift compiler's import generation logic.

The problem reveals that the compiler only generated imports for external typedefs, but `internal.InjectMetadataFields` can reference any external type. This creates a broader principle: any type present in a program's context that comes from a different program must trigger an import for that source program.

Users encountered these failures when injected fields referenced types from transitively included thrift files, resulting in `NameError` exceptions for missing module imports in generated Python code.

This fix ensures the compiler generates imports for all external types whose source program differs from the current program, not just typedefs. This establishes the correct import generation behavior for cross-program type references introduced by metadata injection annotations.

Reviewed By: prakashgayasen

Differential Revision: D77504507

fbshipit-source-id: 20c24eac6fb7ac86424a5b2c599dd0556987ee81

v2025.10.06.00

Toggle v2025.10.06.00's commit message
Generate ServiceMetadata from schema.thrift

Summary: Similar to previous diff, but for ServiceMetadata.

Reviewed By: thedavekwon

Differential Revision: D82437949

fbshipit-source-id: 86e561733e650d5bbf72a5084a9a5778ae64f090