Jkop is an API framework that aims to provide consistent or identical APIs and development experiences across different programming languages and technology platforms. It is also intended to act as a common layer between them. The Jkop project is composed of several modules, each of which is targeted for a specific purpose or environment.

Jkop provides classes and interfaces to be used by programmers in software development. The libraries themselves are originally implemented mostly in The Sling Programming Language, but contain also a lot of code written in languages of the underlying platforms, such as Java, Javascript, C#, Objective-C, etc. While the original language is Sling, the project also makes available pre-compiled release versions of the code directly for other platforms, such as Java/Maven, C#/Nuget and Javascript/NPM. Jkop is free and open source software, licensed under the MIT license.

Jkop Modules

The overall Jkop framework is composed of a collection of related but independent modules. In terms of their implementation, each Jkop module is a Sling module, and the modules are divided into groups based on their common functions, as illustrated below. The following modules are included, groups as shown below:

cape

The Jkop Cape modules (short for "Common API for Everything") provide fundamental and basic functionality for all other modules to build upon.

  • cape provides fundamental features such as data structures, string manipulation, operating system features, etc.

  • cape.unit provides a simple unit-testing framework.

capex

The Jkop Capex modules ("CAPE extensions") extend the functionality of CAPE in various ways.

  • capex.archive provides features for working with archive files such as ZIP, Tar, Gzip.

  • capex.console provides functionality for interacting with text-mode consoles or terminals.

  • capex.console.db provides convenience functionality for creating text-mode programs that can interact with multiple database engines.

  • capex.crypto provides access to cryptographical functions.

  • capex.data provides a common SQL-based relational data access framework.

  • capex.http provides a complete and independent HTTP client implementation.

  • capex.image provides image handling and processing functionality.

  • capex.map provides functionality related to mapping, geolocation and other location based services.

  • capex.mssql provides access and a driver to the Microsoft SQL Server.

  • capex.mysql provides access and a driver to the MySQL database engine.

  • capex.net provides low level network access, including TCP/UDP sockets, SSL support, websocket client, etc.

  • capex.pdf.maker provides an API for creating and manipulating PDF files.

  • capex.text provides text processing features, including XML parsing and authoring, text template functionality, CSV parsing, etc.

  • capex.util provides other miscellaneous utility features.

  • capex.web provides a web client framework for accessing web resources over HTTP.

cave

The Jkop Cave modules ("CAPE Visual Extensions") are focused around user interface development and GUI applications.

  • cave provides common foundations for GUI development, enabling access to fonts, colors, images, key and pointer events, etc.

  • cave.fb provides functionality for accessing and utilizing Facebook in GUI applications.

  • cave.google.account provides functionality for integrating Google accounts in GUI applications.

  • cave.google.fcm provides functionality for integrating Firebase Cloud Messaging (FCM) in GUI applications.

  • cave.google.maps provides functionality for integrating Google Maps in GUI applications.

  • cave.graph provides an independent graph visualization and rendering framework.

  • cave.notification provides a framework for implementing user notifications in GUI applications.

  • cave.photo provides access to photos and cameras in GUI applications.

  • cave.pim provides access to PIM components (personal information manager) in GUI applications.

  • cave.ui implements the Jkop Widget Framework that provides graphical user interface components, controls and other visual elements for GUI applications.

motion

The Jkop Motion modules are meant for high performance graphical development, commonly used for game development.

  • motion provides a complete framework for cross-platform development of high-speed 2D graphical applications and 2D rendering.

sympathy

The Jkop Sympathy modules are meant for server side / backend development, provides for network protocol support and network servers, HTTP and websocket server functionality, etc.

  • sympathy provides a generic framework for implementing network servers and services, including TCP, HTTP, SMTP and Websocket services.

  • sympathy.app provides convenience functionality for creating server applications.

  • sympathy.db provides a common provider utility for connecting to multiple database engines.

  • sympathy.dbapp provides convenience functionality for creating server applications that connect to a database.

GUI / User Interface Development

Jkop includes a cross-platform GUI development framework for the implementation of modern, good looking graphical applications. The user interface components in Jkop are referred to as widgets. For more information, see below:

Jkop Widgets

Server side / backend programming

For server side development, Jkop incorporates the Sympathy framework. For more information, see below:

Sympathy web server and application platform

Further information

For further information, please see below:


Twitter Facebook LinkedIn Youtube Slideshare Github