- Overview
- Tutorials
- Getting started
- Get started with Canton and the JSON Ledger API
- Get Started with Canton, the JSON Ledger API, and TypeScript
- Get started with Canton Network App Dev Quickstart
- Get started with smart contract development
- Basic contracts
- Test templates using Daml scripts
- Build the Daml Archive (.dar) file
- Data types
- Transform contracts using choices
- Add constraints to a contract
- Parties and authority
- Compose choices
- Handle exceptions
- Work with dependencies
- Functional programming 101
- The Daml standard library
- Test Daml contracts
- Next steps
- Application development
- Getting started
- Development how-tos
- Component how-tos
- Explanations
- References
- Application development
- Smart contract development
- Daml language cheat sheet
- Daml language reference
- Daml standard library
- DA.Action.State.Class
- DA.Action.State
- DA.Action
- DA.Assert
- DA.Bifunctor
- DA.Crypto.Text
- DA.Date
- DA.Either
- DA.Exception
- DA.Fail
- DA.Foldable
- DA.Functor
- DA.Internal.Interface.AnyView.Types
- DA.Internal.Interface.AnyView
- DA.List.BuiltinOrder
- DA.List.Total
- DA.List
- DA.Logic
- DA.Map
- DA.Math
- DA.Monoid
- DA.NonEmpty.Types
- DA.NonEmpty
- DA.Numeric
- DA.Optional
- DA.Record
- DA.Semigroup
- DA.Set
- DA.Stack
- DA.Text
- DA.TextMap
- DA.Time
- DA.Traversable
- DA.Tuple
- DA.Validation
- GHC.Show.Text
- GHC.Tuple.Check
- Prelude
- Smart contract upgrading reference
- Glossary of concepts
Java client libraries¶
The Java client libraries simplify using the gRPC Ledger API. Read How to work with contracts and transactions in Java for guidance on how to use them. Read below to learn about their code architecture, installation, and reference materials.
Overview¶
The Java client libraries are organized in two layers:
- The data layer (
bindings-java
): A Java-idiomatic layer based on the Ledger API generated classes. This layer simplifies the code required to work with the Ledger API. It contains the toProto and fromProto methods to interact with the generated classes for the gRPC Ledger API. Additionally, it provides a set of classes that represent the basic Daml data types in Java and are utilized by the Daml Codegen for Java to generate user-defined Daml code equivalent in Java.
This layer is implemented in the Java package
com.daml.ledger.javaapi.data
.
- The data layer (
- The reactive layer (
bindings-rxjava
): A thin layer built on top of the Ledger API services generated classes. It offers a client implementation of the gRPC Ledger API based on RxJava, a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
For each Ledger API service, there is a reactive counterpart with a matching name. For instance, the reactive counterpart of
StateServiceGrpc
isStateClient
.The reactive layer also exposes the main interface representing a client connecting via the gRPC Ledger API. This interface is called
LedgerClient
and the main implementation working against a Canton Ledger is theDamlLedgerClient
.This layer is implemented in the Java package
com.daml.ledger.rxjava
.
- The reactive layer (
Install¶
Find the available versions of the Java client libraries in the Maven Central Repository:
References¶
See the JavaDoc reference documentation.