Apache Edgent is designed as a modular SDK so that only required code needs to be deployed to a device to reduce footprint.
The downside to this is that Edgent' distribution contains main JARs, at least one per module.
The core JARs in a distribution are under
lib and their dependent third-party JARs are under
Optional modules are under category/module, for example
connectors/http with their Edgent & third-party JARs in the sub-directories
ext respectively, e.g.
Note all JAR sizes are at the time of writing, and are subject to change.
The only optional JAR in the core set is for the
org.apache.edgent.providers.development.jar. This is only 4K so removing it from you distribution to a device is a minimal saving.
To reduce footprint the simpliest approach is to remove the modules not needed in a device deployment. Note the biggest saving is removing the Kafka connector, which is typically an enterprise connector rather than an IoT one.
|console||1.8M||Required by development provider|
|samples||648K||Sample applications, typically not required for real applications|
|scripts||160K||Scripts for sample applications, typically not required for real applications|
Here's an example set of JARs for use by a Edgent application on a device that uses IBM Watson IoT Platform to communicate with back end systems, JDBC for a local data store and all the analytics Edgent currently provides.
|core lib||184K||Development provider not included|
|Total||~5.7M||A 75% space reduction compared to the full java8 distribution size of 23.0M|