All Packages
Package Summary
Package
Description
Codename One specific Java annotations used by the build pipeline and the
ParparVM bytecode translator to mark methods and classes for special
treatment -- e.g.
Mapping annotations for managed database persistence.
The Codename One backend runtime: the server side of an application, written
in the same Java as the app and compiled to a native server binary.
Annotations that turn an ordinary class into an HTTP or websocket endpoint.
Amazon Web Services from a backend: request signing, credentials, and S3.
Metrics for a backend: counters, gauges and histograms named after the
OpenTelemetry semantic conventions.
Typed models, form binding results, and HTML/htmx helpers for build-time compiled views.
The build-time ORM on the server: entity classes in, typed data access objects
out.
OpenTelemetry tracing and metrics for a backend, exported over OTLP/HTTP
without an OpenTelemetry library.
Sending push notifications from a server through the Codename One push
service.
Authentication and authorization for the routes of a backend, in the shape
of Spring Security: an application declares one or more
SecurityFilterChain beans, each built from
the HttpSecurity its method is handed, and
every request the server does not answer on its own behalf is put to them.API keys: long-lived secrets a program presents instead of signing in.
Users as the security layer sees them:
UserDetails, the
UserDetailsService a chain authenticates against, and an in-memory store.Password hashing: the
PasswordEncoder contract, the delegating encoder that
reads the {id} in front of a stored password, and the encoders behind it.A second factor at sign-in: one-time codes from an authenticator app, and
the recovery codes that stand in for a lost phone.
Moving the accounts of another identity store into this server: users and
their password hashes, federated links, passkeys and TOTP secrets, with a
MigrationReport that names every
record and what happened to it.Signing users in through another identity provider, with OAuth2 or OpenID
Connect: this server as a client of Google, GitHub, Microsoft, Apple or any
provider described by a
ClientRegistration.Access tokens this server obtains to call other services: the OAuth2 client
credentials grant, the JWT bearer grant of RFC 7523, and Google service
accounts, without a provider SDK.
What the OAuth 2.0 parts of the security layer share: the error a token or a
request is refused with, and the validators a token is put to.
The names of the algorithms a JSON Web Signature is made with (RFC 7518 3),
for the ones this runtime signs and verifies.
JSON Web Tokens signed with a public key algorithm or a shared secret:
JwtDecoder verifies one and
reads its claims, JwtEncoder
makes one.An OAuth2 authorization server and OpenID Connect provider: the server
that signs users in on behalf of clients and issues them tokens.
A server whose routes are reached with a bearer token (RFC 6750): finding
the token in a request, verifying it as a JWT, turning its claims into who
is calling and what they may do, and answering a request whose token is
missing, bad or not enough.
Certificates, certification requests and key stores, read and written in
the same Java on the JVM and in a native build.
Limits on how often a client may ask: a
RateLimiter counts requests under
a key, and a
RateLimitKeyResolver says which
key a request counts under -- its client's address, who it is signed in as,
its session, its API key.Remember-me: recognizing a returning user by a cookie, so that closing the
browser does not sign them out.
Passkeys: signing in with a credential an authenticator holds, as the Web
Authentication specification defines it.
The database engines a backend talks to, and what they spell differently.
Testing a backend the way Spring Boot tests are written, on the JVM and as a
compiled native test.
Build-time checked constraints on controller input.
Interception and exception handling around generated controller routes.
Crypto-currency support shared by the device and the server:
UInt256
amounts, with keys in com.codename1.crypto.hd, chains in com.codename1.crypto.evm,
com.codename1.crypto.bitcoin and com.codename1.crypto.solana, and the network clients
in com.codename1.crypto.rpc and com.codename1.crypto.market.Bitcoin:
BitcoinAddress for every standard output type,
Script, BitcoinTransaction with
the legacy, BIP-143 and BIP-341 signature hashes, Taproot key
tweaking, Psbt (BIP-174) and Wif
keys.Text and binary encodings used by blockchain and wallet code: hexadecimal,
Base58 and Base58Check, Bech32 and Bech32m with SegWit addresses, and
Ethereum's Recursive Length Prefix serialization.
Ethereum and other EVM chains:
EvmAddress with the EIP-55 checksum,
EvmTransaction for legacy (EIP-155), access-list (EIP-2930) and
dynamic-fee (EIP-1559) transactions, Abi encoding,
PersonalSign (EIP-191), TypedData
(EIP-712) and Erc20 token calls.Hierarchical deterministic keys:
Mnemonic backup phrases (BIP-39), Bip32 derivation
on secp256k1 with xprv/xpub serialization, Slip10 for Ed25519, and
DerivationPath for the m/44'/60'/0'/0/0 notation.Prices: the
PriceFeed interface and its
Quote, CoinGeckoFeed, the
template-driven JsonPriceFeed for any JSON price API, and
CachingPriceFeed.Chain network clients:
EvmRpc for Ethereum JSON-RPC,
EsploraClient for the Bitcoin Esplora REST API and
SolanaRpc for Solana JSON-RPC, all written against one
RpcTransport.Solana:
SolanaAddress with program-derived and associated token
addresses, SolanaMessage in the legacy and v0 formats,
SolanaTransaction signing, and instruction builders for the
System, SPL Token, Associated Token, Compute Budget and Memo programs.Wallets: the
Signer interface that keeps private keys behind
derivation paths, the in-memory SeedSigner, and the
Wallet facade that answers addresses and signs EVM, Bitcoin and
Solana transactions on the standard paths.Buses and pins of embedded devices: GPIO lines (
GpioPin,
GpioListener), I2C (I2cDevice), SPI (SpiDevice), serial ports
(SerialPort), PWM (PwmChannel), CAN (CanBus, CanFrame), the
hardware watchdog (Watchdog) and backlight brightness.Networking, Storage, Filesystem & related API's
gzip support based on https://github.com/ymnk/jzlib
A durable store-and-forward queue for devices whose network comes and goes.
Streaming ZIP archive creation with portable Unix file metadata.
Versioned database migrations, shared by applications and the Codename One backend.
Build-time repository interfaces over managed ORM sessions.
Managed persistence contexts and queries for the client and backend ORMs.
QR code generation, shared with the client:
QrCode encodes text or
bytes, and QrCode.toSvg() draws the code for a web page -- an enrolment
page a technician scans to pair a phone with a device, say.The part of the client's cryptography a server shares with it: the
portable Java digests and message authentication codes, and the one-time
passwords built on them.