Publishing smaller packages

Hello everyone.

CesiumJS is an extensive library with a lot of functionality that, depending on the app or use case, may go unused. Installing the cesium npm package also syncs third party libraries which may go unused. All features are tied to the monthly Cesium versioning, whether or not anything has changed.

While many users should continue to use the “traditional” CesiumJS releases, there has been community interest in the past in smaller, more specific packages. We currently have a PR in the works that will allow us to publish two smaller packages: @cesium/engine and @cesium/widgets. These packages will follow semantic versioning and will lay the groundwork for even more modularization of packages down the road.

  • @cesium/engine will contain most of the engine components, including the CesiumWidget, to allow users to have a convenient, yet minimal way to bring Cesium to the browser.
  • @cesium/widgets will contain everything else from the Source/Widgets folder, such as the Viewer, Timeline, Animation and other such widgets.

We would love to get your thoughts on these changes. We plan on releasing a development pre-release version of these packages, prior to the full CesiumJS monthly release on November 1st, to allow users to test integrating these packages in their applications and help us iron out any issues before the full release. We’ll publish another community update when the pre-release versions are out, but until then, we’d appreciate your direct feedback on the pull request.