# Package split, creating a json package

**URL:** <https://swi-prolog.discourse.group/t/package-split-creating-a-json-package/9358>\
**Category:** Announce\
**Tags:** build\
**Created:** [October 24, 2025, 10:55am UTC](https://swi-prolog.discourse.group/t/package-split-creating-a-json-package/9358 "2025-10-24T10:55:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [October 24, 2025, 10:55am UTC](https://swi-prolog.discourse.group/t/package-split-creating-a-json-package/9358/1 "2025-10-24T10:55:11Z")

</div>

I have moved the JSON support libraries from the `http` package to a new package called `json` for two reasons

- JSON is now widely used outside web contexts.
- More JSON support is in the pipeline, notably JSON schema support. It seems a bad idea to add all this to the HTTP package.

These commonly libraries have moved:

- `library(http/json)` → `library(json)`
- `library(http/json_convert)` → `library(json_convert)`

This should have no consequences as the JSON package installs little wrappers in the old locations that make code loading `library(http/json)`, etc. work normally.

There should be no consequences to building and distributions either. However, **incremental builds** (pull, ninja) **fail**. If you want an incremental build, use the commands below. Notably, add `update --init` to get the `json` package and run (from the _build_ directory), `rm -rf home` to get rid of the outdated library structure.

```prolog
git pull
git submodule update --init
cd build
rm -rf home
cmake .
ninja

```
