Break api into 2 parts

Open
#31 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Quiet
Tech stack
java

Research direction

Start by reviewing the current client artifact and its Jackson and HTTP implementation dependencies, then compare the referenced Docling structure at docling-java/docling-serve. Evaluate a ServiceLoader-based separation into API and implementation artifacts, including simultaneous Jackson 2 and 3 support; done means downstream frameworks can provide their own versions and HTTP implementations.

Written by the indexing model from the issue text.

Description

Is there a way to break this into 2 parts - the pure api and the implementation?

Downstream frameworks (like Spring & Quarkus) may want to use their own Jackson versions & their own http implementations. Using the client as-is does not allow for this customization.

I maintain the Docling Java client and we have successfully done that - separated into 2 artifacts, the api & the client. Downstream frameworks like Spring & Quarkus only depend on the API and provide their own implementations of it. See https://github.com/docling-project/docling-java/tree/main/docling-serve

The Docling api also supports both Jackson 2 & 3 simultaneously.

We use a ServiceLoader abstraction, so you never actually have to use the implementation imports directly. Everything is driven through the API.

Apps that use Jackson 3 are unable to use this api at all.

I'm happy to help contribute if there is interest.

Dominant language
Java
Stars
73
Forks
14
Avg merge
13h 54m
Merged PRs (30d)
3

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from langfuse/langfuse-java

All issues in langfuse/langfuse-java

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.