Repository navigation
[DISCUSS] Future Roadmap, Technical Improvements and Community Growth #951
Description
Hi community,
We are considering a new Apache Fesod(incubating) release around mid-August. The timeline is still tentative and will depend on development progress, testing results, and community feedback.
The upcoming release is expected to include routine improvements, such as:
- Dependency upgrades
- Bug fixes
- New feature enhancements
- Improvements based on community feedback
Besides the upcoming release, we would like to start a discussion about the future roadmap and development priorities of Apache Fesod(incubating).
The following items are initial ideas for discussion. We welcome feedback and suggestions from the community.
1. Introduce fesod-doc Module
Currently, Apache Fesod(incubating) mainly focuses on spreadsheet processing. As the ecosystem evolves, document processing capabilities may become a valuable extension.
We are considering introducing a new module:
fesod-doc
Potential goals:
- Provide document processing capabilities within the Apache Fesod(incubating) ecosystem
- Reuse existing Apache Fesod(incubating) design principles where applicable
- Keep the module independent from the core spreadsheet functionality
Topics for discussion:
- What document formats should be supported first?
- What capabilities should be included in the initial version?
- Should common abstractions be shared between different Apache Fesod(incubating) modules?
- What is the right timing to introduce this module?
2. Add Benchmark Module
Performance is an important aspect of a data processing library.
We propose adding a benchmark module to provide a consistent way to evaluate:
- Read/write performance
- Memory usage
- Large file processing capability
- Performance changes between releases
The benchmark module would:
- Be maintained as part of the Apache Fesod(incubating) project
- Not be included in released artifacts
- Provide reproducible performance tests for contributors and users
Possible implementation:
- JMH-based benchmarks
- Different data size and usage scenarios
- Performance regression tracking
Topics for discussion:
- Which benchmark scenarios are most meaningful?
- Should benchmarks run periodically in CI?
- How should benchmark results be shared with the community?
3. Gradually Reduce CGLIB Dependency
Some parts of Apache Fesod(incubating) currently rely on CGLIB.
Considering:
- Long-term dependency maintenance
- Compatibility with newer Java versions
- Simplifying project dependencies
We would like to gradually reduce unnecessary CGLIB usage.
Possible approaches:
- Replace CGLIB-based implementations with standard Java mechanisms where possible
- Evaluate lightweight alternatives when needed
- Ensure compatibility and performance are not negatively affected
This would be a gradual improvement rather than an immediate breaking change.
Topics for discussion:
- Which components currently depend on CGLIB?
- What migration approach would minimize compatibility impact?
- Should this be treated as a long-term technical improvement?
4. Establish Regular Community Sync Meetings
As the Apache Fesod(incubating) community grows, regular communication may help contributors stay aligned on development progress, roadmap planning, and community activities.
We would like to discuss establishing regular community sync meetings, such as:
- Bi-weekly community sync meeting
- Monthly community meeting
Potential topics:
- Release planning and progress updates
- Roadmap discussions
- Technical proposals
- Contributor onboarding
- Community activities
Possible formats:
- Open community meeting
- Optional attendance
- Meeting notes shared publicly for transparency
Topics for discussion:
- What meeting frequency works best?
- What topics should be covered?
- Which timezone and communication channel would be convenient?
Open Discussion
The items above are only initial proposals.
We would like to hear feedback from the community:
- What features or improvements should Fesod prioritize?
- Are there any pain points in current usage?
- Are there areas where Fesod can better support users and developers?
- Are there contributors interested in leading specific roadmap items?
Your feedback and ideas are highly appreciated.
Thanks!
Activity
delei commentedon Jul 16, 2026
Support Apache POI version 6.x
I suggest that we could add a support plan for Apache POI 6.0.0 in the roadmap, which is currently under development.
It should be noted that the target of POI 6.0.0 might be Java 17. Once it is officially released, we will continue to discuss the version support and release maintenance policies.
References
delei commentedon Jul 16, 2026
About the CGLIB library
As discussed in issue #531 , and the approach based on the
SAXParserFactoryclass.I suggest we try using byte-buddy as an alternative to cglib, but there are a few points to consider:
I believe our ultimate goal is not to remove support for cglib entirely, but to replace the default implementation. Ultimately, users will be able to choose from a range of supported ASM frameworks.
bengbengbalabalabeng commentedon Jul 16, 2026
About the
fesod-docModuleSome of my thoughts on
fesod-dochave been compiled here: #946Main content includes: format support, capability boundaries, and some of my thoughts on API-Style. To avoid repetition, please refer to the link for specifics.
nkuprins commentedon Jul 16, 2026
About the
fesod-docModuleFor the
fesod-docmodule, are you also considering a native data bridge withfesod-sheet? It would be amazing to be able to stream a massive Excel file row-by-row directly into a Word template to batch-generate thousands of documents (like invoices) on the fly, without ever loading the whole dataset into memory.nkuprins commentedon Jul 28, 2026
About the
fesod-docandbenchmarksHow would contributors clearly identify which commits belong to
fesod-sheet, which tofesod-doc, and which tobenchmarks?I think this is a question worth asking (assuming these parts will be continuously updated). It may be considered superfluous, but IMO expanding the commit specification can be on the table. For example,
leehaut commentedon Aug 9, 2026
Thanks for opening this discussion. A few concise thoughts:
Priority: I’d suggest focusing first on a benchmark module and a gradual CGLIB reduction (e.g. a
BeanPropertyAccessorSPI with a JDK-based default + migration period). These strengthen the core sheet story before expanding the ecosystem.fesod-doc: Agree with keeping it independent and starting small —.docxonly, prioritize template fill / write, mark the first API as experimental. A sheet→doc streaming bridge is valuable, but better as a later integration than MVP scope.Also +1 to planning POI 6.x / Java baseline policy early, and adopting scoped conventional commits like
feat(sheet|doc|bench):.bengbengbalabalabeng commentedon Aug 16, 2026
About the CGLIB library
Based on previous discussions with @delei and @leehaut
Here is a proposal for decoupling the
BeanWrapperarchitecture based on SPI.1. SPI Design
BeanWrapper: Defines standard interfaces for property reading/writing ...BeanWrapperProvider: SPI contract providingBeanWrapper create(Object target)andint getOrder()methods.BeanWrappers: Factory utility class that handles SPI auto-discovery and priority sorting (viaServiceLoaderbased ongetOrder()).2. Involved Modules & Responsibilities
2.1
fesod-commonBeanWrapper/BeanWrapperProvider), the factory utility (BeanWrappers).2.2
fesod-beanscglib,byte-buddy, etc.2.3
fesod-beans/fesod-beans-cglibBeanMap(Order = 500).fesod-common,fesod-shaded2.4
fesod-beans/fesod-beans-bytebuddy(Experimental)fesod-common,byte-buddy...3. Implementation Roadmap
Phase 1: SPI Abstraction & CGLIB Module Separation
BeanWrappersfactory infesod-common.fesod-beans-cglibmodule and complete CGLIB adaptation.Phase 2:
fesod-sheetCore Logic Refactoring & API Cleanupfesod-sheet's direct dependency onfesod-shaded, replacing it withfesod-beans-cglib.BeanMapUtils.create()usages withBeanWrappers.create().BeanMapUtilsrelated APIs to prevent downstream build/runtime failures caused by hard CGLIB dependencies when switchingfesod-beans-*implementations.Phase 3: Establish
fesod-beans-bytebuddy& Byte-Buddy Adaptation (Need more information)delei commentedon Aug 16, 2026
Hi @bengbengbalabalabeng
I'm interested in this. In my spare time, could I cooperate to participate in this PR, such as Phase 3 ?
bengbengbalabalabeng commentedon Aug 16, 2026
Sure, welcome :)