Skip to content

Commit

Permalink
Doc 355 - client doc updates (#1497)
Browse files Browse the repository at this point in the history
Update the individual client doc topics with improved descriptions based
on what's already there, plus information from the main HZC website
(e.g. https://hazelcast.com/developers/clients/cplusplus/).

Note that the Java client topic will be done in a separate PR (this is
to avoid merge conflicts resulting from changes for Doc-294)

---------

Co-authored-by: Oliver Howell <[email protected]>
  • Loading branch information
amandalindsay and oliverhowell authored Jan 27, 2025
1 parent 74b235b commit 12e68a8
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 28 deletions.
29 changes: 15 additions & 14 deletions docs/modules/clients/pages/cplusplus.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,24 @@
:page-api-reference: http://hazelcast.github.io/hazelcast-cpp-client/{page-latest-supported-cplusplus-client}/index.html
[[c-client]]

TIP: For the latest C{plus}{plus} API documentation, see http://hazelcast.github.io/hazelcast-cpp-client/{page-latest-supported-cplusplus-client}/index.html[Hazelcast C++ Client docs].
TIP: For the latest {cpp} API documentation, see http://hazelcast.github.io/hazelcast-cpp-client/{page-latest-supported-cplusplus-client}/index.html[Hazelcast C++ Client docs].

You can use the native {cpp} client to connect to Hazelcast cluster members and
perform almost all operations that a member can perform.
Clients differ from members in that clients do not hold data. The {cpp} client is
by default a smart client, i.e., it knows where the data is and asks directly for the correct member.
You can disable this feature (using the `client_config::set_smart_routing` method) if you do not want
the clients to connect to every member.
The Hazelcast native {cpp} client is an official library that allows {cpp} applications to connect to and interact with Hazelcast clusters. The key features and benefits include:

The features of {cpp} clients are listed below:
* Distributed Data Structures: The client offers access to various distributed data structures such as Map, Queue, Set, List, MultiMap, and RingBuffer. It also gives access to transactional distributed data structures such as transactional_map, transactional_queue, etc.
* Near Cache Support: The Near Cache feature allows frequently read data to be stored for faster read speeds compared to traditional caches
* Enterprise-Level security: the client provides SSL support for enhanced security requirements
* Distributed synchronization: the client offers distributed synchronization mechanisms through the CP Subsystem, including fenced_lock, counting_semaphore and latch
* Smart Client functionality: by default, it operates as a smart client, meaning it knows the data location within the cluster and can directly request the correct member (note that you can disable this feature using the `client_config::set_smart_routing` method if you do not want the clients to connect to every member)
* Listeners: ability to add cluster listeners to a cluster and entry/item listeners to distributed data structures
* Cloud integration: it offers the ability to discover existing Hazelcast clusters in an AWS environment
* Asynchronous operations: the client supports asynchronous execution of tasks in the cluster and non-blocking asynchronous methods for improved performance
* Flexible installation: it can be installed using package managers like Vcpkg or Conan, or built from source using CMake
* Access to distributed data structures (`imap`, `iqueue`, `multi_map`, etc.).
* Access to transactional distributed data structures (`transactional_map`, `transactional_queue`, etc.).
* Ability to add cluster listeners to a cluster and entry/item listeners to distributed data structures.
* Distributed synchronization mechanisms with `fenced_lock`, `counting_semaphore` and `latch`.
By using the Hazelcast {cpp} client, developers can build high-performance, distributed applications in {cpp} that leverage Hazelcast's powerful in-memory computing platform.

See Hazelcast C++ client's own GitHub https://github.com/hazelcast/hazelcast-cpp-client[repo^]
for information on setting the client up, installing and compiling it, its serialization, query support and available APIs.
== Next steps

For information on setting up, installing and compiling the client, and about its serialization, query support and available APIs, see the https://github.com/hazelcast/hazelcast-cpp-client[Hazelcast {cpp} Client GitHub repo].
You can also find https://github.com/hazelcast/hazelcast-cpp-client/tree/master/examples[code samples^]
for this client in this repo.
20 changes: 15 additions & 5 deletions docs/modules/clients/pages/dotnet.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,20 @@

TIP: For the latest .NET API documentation, see http://hazelcast.github.io/hazelcast-csharp-client/{page-latest-supported-csharp-client}/api/index.html[Hazelcast .NET Client docs].

You can use the native .NET client to connect to Hazelcast client members.
The API is very similar to the Java native client.

See Hazelcast .NET client's GitHub http://hazelcast.github.io/hazelcast-csharp-client/latest/doc/download-install.html[documentation^]
for more information about configuring, starting, and using the client.
You can also find https://github.com/hazelcast/hazelcast-csharp-client/tree/master/src/Hazelcast.Net.Examples[code samples^]
The Hazelcast native .NET client is an official library that allows .NET applications to connect to and interact with Hazelcast clusters. The key features and benefits include:

* Distributed Data Structures: It provides access to Hazelcast's distributed data structures such as maps, queues, topics, and more
* SQL Support: The client allows running SQL queries over distributed data
* Near Cache: It supports Near Cache for faster read speeds. Eventual consistency is also supported
* Security Features: The client offers SSL support and Mutual Authentication for enterprise-level security needs
* JSON Object Support: It allows using and querying JSON objects
* Zero Downtime Upgrades: Blue/Green failover for zero downtime during upgrades is supported
* Scalability: The Hazelcast .NET Client is designed to scale up to hundreds of members and thousands of clients, making it suitable for large-scale applications
These features make the Hazelcast .NET Client ideal for .NET applications requiring high-performance, scalable, and distributed data processing capabilities.

== Next steps

For more information about configuring, starting, and using the client, see the Hazelcast .NET client GitHub http://hazelcast.github.io/hazelcast-csharp-client/latest/doc/download-install.html[documentation^]. You can also find https://github.com/hazelcast/hazelcast-csharp-client/tree/master/src/Hazelcast.Net.Examples[code samples^]
for the client in this repo.
17 changes: 14 additions & 3 deletions docs/modules/clients/pages/go.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,18 @@

TIP: For the latest Go API documentation, see https://pkg.go.dev/github.com/hazelcast/hazelcast-go-client@v{page-latest-supported-go-client}[Hazelcast Go Client docs].

Go Client implementation for Hazelcast. It is implemented using the Hazelcast Open Binary Client Protocol.
The Hazelcast native Go client is an official library that allows Go applications to connect to and interact with Hazelcast clusters. It is implemented using the Hazelcast Open Binary Client Protocol. The key features and benefits include:

See Hazelcast Go client's GitHub https://github.com/hazelcast/hazelcast-go-client[repo^]
for its documentation and https://github.com/hazelcast/hazelcast-go-client/tree/master/examples[code samples^].
* Distributed Data Structures: Supports various distributed implementations like Map, Queue, Set, List, MultiMap, and Replicated Map, mimicking natural interfaces of these structures in Go
* SQL Support: Allows running SQL queries on Hazelcast 5.x clusters, enhancing data querying capabilities
* JSON Support: Declarative configuration support via JSON
* High Performance: Offers high-performance aggregation functions such as sum, average, max, and min, for Hazelcast Map entries. They can run in parallel for each partition and are highly optimized for speed and low-memory consumption
* Near Cache: Improves read performance for frequently accessed data, optimizing application speed
* External Smart Client Discovery: Allows for dynamic discovery of cluster members, enhancing scalability and fault tolerance
The Hazelcast Go client provides a robust, efficient, and Go-friendly way to work with Hazelcast clusters, enabling developers to build scalable and distributed applications with ease.

== Next steps

For more information, see the https://github.com/hazelcast/hazelcast-go-client[Hazelcast Go client GitHub repo].
and https://github.com/hazelcast/hazelcast-go-client/tree/master/examples[code samples^].
18 changes: 15 additions & 3 deletions docs/modules/clients/pages/nodejs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,19 @@

TIP: For the latest Node.js API documentation, see http://hazelcast.github.io/hazelcast-nodejs-client/api/{page-latest-supported-nodejs-client}/docs/[Hazelcast Node.js Client docs].

Node.js Client implementation for Hazelcast. It is implemented using the Hazelcast Open Binary Client Protocol.
The Hazelcast native Node.js client is an official library that allows Node.js applications to connect to and interact with Hazelcast clusters. It is implemented using the Hazelcast Open Binary Client Protocol, and provides a promise-based API with built-in support for native JavaScript objects. The key features and benefits include:

See Hazelcast Node.js client's GitHub https://github.com/hazelcast/hazelcast-nodejs-client[repo^]
for its documentation and https://github.com/hazelcast/hazelcast-nodejs-client/tree/master/code_samples[code samples^].
* Distributed data structures: The client offers access to various distributed data structures like Map, MultiMap, Set, List, Queue, and more
* Multi-layer caching: You can build a multi-layer cache for your applications using Hazelcast Map, which is a distributed and replicated key-value store
* Fast JSON querying: The client allows querying JSON data at speeds surpassing traditional document stores
* Near Cache: This allows storing frequently read data in your Node.js process, providing faster read speeds than popular caching solutions
* Pub-sub communication: The client enables pub-sub communication between application instances
* Prevent races with Lock: The client provides locking mechanisms to prevent race conditions when accessing shared resources
* SQL support: The client supports SQL queries for optimized distributed queries on the keys and values of maps in a local cluster
These features make the Hazelcast Node.js client a powerful tool for building distributed, high-performance Node.js applications to leverage Hazelcast's in-memory computing capabilities.

== Next steps

For more information, see the Hazelcast Node.js client GitHub https://github.com/hazelcast/hazelcast-nodejs-client[repo^]
and https://github.com/hazelcast/hazelcast-nodejs-client/tree/master/code_samples[code samples^].
18 changes: 15 additions & 3 deletions docs/modules/clients/pages/python.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,19 @@

TIP: For the latest Python API documentation, see https://hazelcast.readthedocs.io/en/v{page-latest-supported-python-client}/index.html[Hazelcast Python Client docs].

Python Client implementation for Hazelcast. It is implemented using the Hazelcast Open Binary Client Protocol.
The Hazelcast native Python client is an official library that allows Python applications to connect to and interact with Hazelcast clusters. It is implemented using the Hazelcast Open Binary Client Protocol. The key features and benefits include:

See Hazelcast Python client's GitHub https://github.com/hazelcast/hazelcast-python-client[repo^]
for its documentation and https://github.com/hazelcast/hazelcast-python-client/tree/master/examples[code samples^].
* Distributed Data Structures: The client provides access to Hazelcast's distributed data structures such as maps, queues, topics, lists, sets, and more
* SQL Support: It offers the ability to query Map data using standard SQL syntax
* JSON Object Support: It allows using and querying JSON objects
* Compact Serialization: The client supports Compact serialization, which provides efficient serialization for objects
* DBAPI Support: It implements the DBAPI interface on top of the SQL service, making it compatible with various libraries and tools
* Near Cache: The client supports the Near Cache feature for faster read speeds on frequently accessed data
* Integration with Jupyter Notebook: The client can be used in Jupyter Notebook environments, enabling interactive data analysis and visualization
These features make the Hazelcast Python Client a powerful tool for Python applications requiring distributed computing, in-memory data processing, and real-time analytics capabilities.

== Next steps

For more information, see the Hazelcast Python client GitHub https://github.com/hazelcast/hazelcast-python-client[repo^]
and https://github.com/hazelcast/hazelcast-python-client/tree/master/examples[code samples^].

0 comments on commit 12e68a8

Please sign in to comment.