claid 0.6.4 copy "claid: ^0.6.4" to clipboard
claid: ^0.6.4 copied to clipboard

CLAID is a flexible and modular middleware framework based on transparent computing. CLAID allows to build applications for mobile (Android, WearOS, iOS*) and regular (Linux, macOS) operating systems, [...]

0.6.4 #

  • Fixed bug in isConnectedToRemoteServer, leading to an invalid state if the connection to the remote server was established before all Modules were initialized
    • isConnectedToRemoteServer now directly uses a RemoteFunction to request the connection state from the middleware, instead of keeping track of the state for each Module
    • Added isConnectedToRemoteServer to Java API as well
  • Fixed bug in setSyncingSchedule of DataSyncModule, leading to functions not being rescheduled based on a new Schedule
  • Fixed onCLAIDStarted not being called sometimes, when starting CLAID in the foreground
  • Improved error handling, changed some errors to fatals to ensure the user will notice it
  • Added DeviceInfoGatherer, allowing to request charging state and battery level on mobile devices from other runtimes (currently only C++, only on Android)
  • Added optional parameter to Futures, allowing them to timeout if a response was not received in time.

0.6.3 #

  • Fixed bug in global scheduling in Java, that would cause some threads to not wake up when due.
  • Added Schedule data type, allowing to easily specify schedules in terms of intervals, frequencies, exact times or time windows.
  • Added registerFunctionBasedOnSchedule, allowing to easily register function calls based on a specified schedule.
    • Schedule can be specified as property, hence can be set from the config file, allowing to specify schedules very easily
    • Changed BatteryCollector to use Schedule
    • Changed DataSyncModule to use Schedule
  • Added remote functions "start_sync" and "set_sync_schedule" to DataSyncModule, allowing other Modules to start the synchronization process and to change its schedule.
  • Added support for for enabling TLS and mutual TLS (mTLS) encryption and authentication from configuration files.
    • Added Test for TLS
  • Changed CLAID WakeLocks to leverage reference counting, so acquiring a wakelock X times and releasing it X times is safe and will not cause issues.
  • Changed AccelerometerCollector and GyroscopeCollector to use WakeLocks.

0.6.2 #

  • Fixed device view button not having the correct index when clicked on in the ModuleList.
  • Added onShown() and onHidden() to CLAIDModuleView. Will be called whenever a view is selected from the CLAIDModuleList.
  • Ensuring Modules are shown in sorted order in CLAIDModuleList.
  • Improved DataSyncModule and DataReceiverModule; both now include better user handling.
  • Added RemoteFunctionWith1Parameter, RemoteFunctionWith2Parameters, ... to Dart to provide a more convenient execute function.
  • Added GlobalDeviceScheduler to have "perfect" scheduling across all Runtimes
    • All Runtimes can call middleware functions like acquireWakelock, releaseWakelock and scheduleDeviceWakeupAtTime to let the middleware know about their scheduling requirements.
    • The middleware then uses a platform specific GlobalDeviceScheduler, which uses platform specific code (e.g., on Android/WearOS and iOS) to acquire/release wakelocks and schedule device wakeups.
    • This should guarantee that whenever any runtime schedules a Runnable by any means, that the device will be awake at the due date/time and keeps awake while the scheduled function is being executed.
    • Providing global device scheduling functions to all supported Runtimes; starting with Java and C++ for now.

0.6.1 #

  • First major release of CLAID!
  • Added x86 support
  • Added remote configuration and config upload
  • Added various control messages for reconfiguration, pausing and unpausing Modules
  • Added Power Profiles
  • Added adaptive battery management
  • Added more collectors
  • Added packaging system
  • Reworked Dart API to conform to Java, Python, and C++ APIs
  • Added RPCs, allowing Modules and non-module entities to call functions of other Modules or Runtimes across languages remotely.
  • Added more UI elements
  • Beautified CLAID Module widgets
  • Added matching of CLAIDModuleViews to corresponding Modules, enabling to register views for certain Modules (even if written in another language)
  • Added CLAIDView for simple visualization of all currently loaded CLAID Modules in Flutter
  • Removed the need for PersistentModuleFactory for CLAID in Android services.
  • Added checks for battery exemptions and device management features
  • Added CLAIDDeviceOwnerFeatures, allowing to control Wifi and Bluetooth from the background without user intervention, if the App is registered as a device owner.
  • Added automatic timeout at startup, enabling the middleware to assert that all Modules specified in the config are loaded. Timeout can be set from the config file.

0.0.5 #

  • Added ABI filters, because this flutter package currently does not support x86 and x86_64 devices.

0.0.4 #

  • Updated proto sources

0.0.3 #

  • Updating Readme

0.0.2 #

  • Updating LICENSE
  • Updating README
  • Updating pubspec

0.0.1 #

  • CLAID Middleware implementation
    • gRPC Server and Runtime Clients
    • Configuration loading and checking
    • Tests
  • Dart Runtime
    • Modules
    • Scheduling (periodic and scheduled functions)
    • Common data types (bool, int, string, array, map)
    • Protobuf data types
    • Tests
  • Java Runtime
    • Modules
    • Scheduling (periodic and scheduled functions)
    • Common data types (bool, int, string, array, map)
    • Protobuf data types
  • Support for Android, Linux and macOS
    • Android libs for armeabi-v7a, arm64-v8a, x86 and x86_64
2
likes
110
pub points
39%
popularity

Publisher

unverified uploader

CLAID is a flexible and modular middleware framework based on transparent computing. CLAID allows to build applications for mobile (Android, WearOS, iOS*) and regular (Linux, macOS) operating systems, enabling seamless communication between individual Modules implemented in different programming languages (C++, Java, Dart, Python) running on all these operating systems. Existing CLAID Modules allow to effortlessly implement modular machine learning and data collection application with little-to-no coding.

Homepage

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

ffi, fixnum, flutter, grpc, path, path_provider, plugin_platform_interface, protobuf

More

Packages that depend on claid