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.