Skip to content

Commit 9dde063

Browse files
committed
README tidying
1 parent d7abaef commit 9dde063

File tree

8 files changed

+347
-108
lines changed

8 files changed

+347
-108
lines changed

CLAUDE.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,15 @@ Examples:
4646
### Test Structure
4747
Tests follow JUnit 6 conventions with `src/test/java` mirroring `src/main/java` structure.
4848

49+
### Language
50+
Concise language, British English spelling
51+
4952
## Key Technologies
5053

5154
- **Netty** - Async networking
5255
- **JUnit 6** - Testing
5356
- **SLF4J** - Logging
54-
- **Ed25519** - Cryptographic signatures
57+
- **Ed25519** - Cryptographic signatures (Bouncy Castle Library)
5558
- **ANTLR4** - Parser generation (requires IDE source path configuration)
5659

5760
## Running Convex
@@ -63,7 +66,7 @@ Execution is typically using CLI commands on convex.jar uberjar (all dependencie
6366
java -jar convex.jar desktop # Launch GUI
6467
```
6568

66-
Typically should set up small convenience wrapper script to run `java -jar ...` and allow comamnds like:
69+
Typically should set up small convenience wrapper script to run `java -jar ...` and allow commands like:
6770
```bash
6871
convex key generate
6972
```
@@ -82,10 +85,6 @@ See BUILD.md for complete release workflow.
8285
- ANTLR4 generated sources may need manual IDE source path configuration
8386
- Add `target/generated-sources/antlr4` as source directory if needed
8487

85-
## Contributing
86-
87-
See README.md for contribution guidelines and license terms.
88-
8988
## Key Principles
9089

9190
- **Immutable Data** - Use immutable lattice data structures (ACell hierarchy)

convex-benchmarks/README.md

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,68 @@
11
# Convex Benchmarks
22

3-
## Benchmarking
3+
[![Maven Central](https://img.shields.io/maven-central/v/world.convex/convex-benchmarks.svg?label=Maven%20Central)](https://search.maven.org/search?q=world.convex)
44

5-
Convex includes a wide set of benchmarks, which are used to evaluate performance enhancements. These are mostly implemented with the JMH framework, and reside in the `convex.benchmarks` package.
5+
Performance benchmarking suite for [Convex](https://convex.world) using the JMH (Java Microbenchmark Harness) framework.
66

7-
## Preparing to run benchmarks
7+
## Available Benchmarks
88

9-
To run benchmarks, it is best to build the full `convex-benchmarks` jar with dependencies which includes all benchmarks, tests and dependencies. This can be done with the following commend:
9+
| Benchmark | Description |
10+
|-----------|-------------|
11+
| `CVMBenchmark` | Convex Virtual Machine execution performance |
12+
| `EtchBenchmark` | Etch database read/write throughput |
13+
| `HashBenchmark` | Cryptographic hashing operations |
14+
| `SignatureBenchmark` | Ed25519 signature generation and verification |
15+
| `DataStructureBenchmark` | Immutable data structure operations |
1016

11-
`mvn clean install`
17+
## Running Benchmarks
1218

13-
## Directly running benchmarks
19+
### Build
1420

15-
After building the testing `.jar`, you can launch benchmarks as main classes in the `convex.benchmarks` package, e.g.
16-
17-
```
18-
java -cp target/convex-benchmarks-jar-with-dependencies.jar convex.benchmarks.EtchBenchmark
21+
```bash
22+
cd convex
23+
mvn clean install -pl convex-benchmarks -am
1924
```
2025

21-
## Running with Java Flight Recorder
26+
### Execute
2227

23-
If you want to analyse profiling results for the benchmarks, you can run using JFR to produce a profiling output file `flight.jfr`
28+
Run a specific benchmark:
2429

30+
```bash
31+
java -cp convex-benchmarks/target/convex-benchmarks-jar-with-dependencies.jar \
32+
convex.benchmarks.EtchBenchmark
2533
```
26-
java -cp target/convex-benchmarks-jar-with-dependencies.jar -XX:+FlightRecorder -XX:StartFlightRecording=duration=200s,filename=flight.jfr convex.benchmarks.CVMBenchmark
27-
```
2834

29-
The resulting `flight.jfr` can the be opened in tools such as JDK Mission Control which enables detailed analysis and visualisation of profiling results. This is a useful approach that the Convex team use to identify performance bottlenecks.
35+
### With Profiling (Java Flight Recorder)
36+
37+
Generate profiling data for analysis:
3038

31-
## Benchmark results
39+
```bash
40+
java -cp convex-benchmarks/target/convex-benchmarks-jar-with-dependencies.jar \
41+
-XX:+FlightRecorder \
42+
-XX:StartFlightRecording=duration=200s,filename=flight.jfr \
43+
convex.benchmarks.CVMBenchmark
44+
```
45+
46+
Open `flight.jfr` in JDK Mission Control for detailed analysis.
3247

33-
After running benchmarks, you should see results similar to this:
48+
## Example Results
3449

3550
```
3651
Benchmark Mode Cnt Score Error Units
3752
EtchBenchmark.readDataRandom thrpt 5 4848620.857 ± 110622.054 ops/s
3853
EtchBenchmark.writeData thrpt 5 728486.145 ± 168739.491 ops/s
3954
```
4055

41-
For example, this can be interpreted as an indication that the Etch database layer is handling approximately 4.8 million reads and 729k million atomic writes per second in the testing environment. Usual benchmarking caveats apply and results may vary considerably based on your system setup (available RAM, disk performance etc.) - it is advisable to examine the benchmark source to determine precisely which operations are being performed.
56+
This indicates ~4.8 million reads/sec and ~728k writes/sec for the Etch database layer. Results vary based on hardware (RAM, disk speed, CPU).
57+
58+
## Documentation
59+
60+
- [Convex Documentation](https://docs.convex.world)
61+
- [JMH Documentation](https://openjdk.org/projects/code-tools/jmh/)
62+
- [JDK Mission Control](https://www.oracle.com/java/technologies/jdk-mission-control.html)
4263

43-
## Copyright
64+
## License
4465

45-
Code in `convex-benchmarks` provided under the Convex Public License
66+
Copyright 2020-2025 The Convex Foundation and Contributors
4667

47-
Copyright 2020-2023 Convex Foundation and Contributors
68+
Code in convex-benchmarks is provided under the [Convex Public License](../LICENSE.md).

convex-cli/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Convex CLI
22

3-
Command-line interface for the Convex decentralized network. Query state, execute transactions, manage keys, run local test networks, and operate production peers.
3+
[![Maven Central](https://img.shields.io/maven-central/v/world.convex/convex-cli.svg?label=Maven%20Central)](https://search.maven.org/search?q=world.convex)
4+
5+
Command-line interface for the [Convex](https://convex.world) decentralised network. Query state, execute transactions, manage keys, run local test networks, and operate production peers.
46

57
## Quick Start
68

convex-core/README.md

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,75 @@
11
# Convex Core
22

3+
[![Maven Central](https://img.shields.io/maven-central/v/world.convex/convex-core.svg?label=Maven%20Central)](https://search.maven.org/search?q=world.convex)
34
[![javadoc](https://javadoc.io/badge2/world.convex/convex-core/javadoc.svg)](https://javadoc.io/doc/world.convex/convex-core)
45

5-
## Overview
6+
The foundational library for the [Convex](https://convex.world) decentralized network, providing the virtual machine, consensus algorithm, and core data structures.
67

7-
Convex Core is the fundamental code base for Convex
8+
## Features
89

9-
It includes:
10-
- Implementations of all Convex decentralised data structures
11-
- Implementation of the Convex Virtual Machine (CVM)
12-
- Convergent Proof of Stake consensus algorithm
13-
- The Etch database and storage system
14-
- Common utility functions (including cryptography support)
10+
- **Convex Virtual Machine (CVM)** - Lambda calculus-based execution environment for smart contracts
11+
- **Convergent Proof of Stake (CPoS)** - Energy-efficient consensus algorithm
12+
- **Immutable Data Structures** - Lattice-based structures optimized for decentralized systems
13+
- **Etch Database** - High-performance persistent storage layer
14+
- **Cryptography** - Ed25519 signatures and secure hashing utilities
1515

16-
Convex Core is designed as a library to support applications in the Convex ecosystem. It can be used directly and embedded in JVM applications that wish to work with Convex data structures directly.
16+
## Installation
17+
18+
### Maven
19+
20+
```xml
21+
<dependency>
22+
<groupId>world.convex</groupId>
23+
<artifactId>convex-core</artifactId>
24+
<version>0.8.2</version>
25+
</dependency>
26+
```
27+
28+
### Gradle
29+
30+
```groovy
31+
implementation 'world.convex:convex-core:0.8.2'
32+
```
33+
34+
## Usage
35+
36+
Use `convex-core` directly when you need to work with Convex data structures locally without network connectivity:
37+
38+
```java
39+
import convex.core.data.*;
40+
import convex.core.lang.*;
41+
42+
// Work with immutable data structures
43+
AVector<CVMLong> vec = Vectors.of(1L, 2L, 3L);
44+
AMap<Keyword, ACell> map = Maps.of(Keyword.create("name"), Strings.create("Alice"));
45+
46+
// Execute CVM code locally
47+
Context ctx = Context.create(state, address);
48+
ctx = ctx.eval(Reader.read("(+ 1 2 3)"));
49+
ACell result = ctx.getResult(); // Returns 6
50+
```
1751

1852
## Documentation
1953

20-
- JavaDocs (available in this repository or [from javado.io](https://javadoc.io/doc/world.convex/convex-core))
54+
- [Javadoc API Reference](https://javadoc.io/doc/world.convex/convex-core)
2155
- [Java Examples](https://github.com/Convex-Dev/convex/tree/develop/convex-core/src/test/java/examples)
2256
- [Convex Lisp Examples](https://github.com/Convex-Dev/convex/tree/develop/convex-core/src/test/resources/examples)
57+
- [Convex Documentation](https://docs.convex.world)
58+
59+
## Building from Source
60+
61+
```bash
62+
git clone https://github.com/Convex-Dev/convex.git
63+
cd convex
64+
mvn install -pl convex-core -am
65+
```
66+
67+
**Note:** ANTLR4 generates parser code during the build. If your IDE shows errors, add `target/generated-sources/antlr4` as a source directory.
2368

24-
## License and Contributing
69+
## License
2570

26-
Convex Core is distributed under the Convex Public License
71+
Copyright 2018-2025 The Convex Foundation and Contributors
2772

28-
Contributors are encouraged to sign the Convex Contribtor's Agreement, which may make contributors eligible for awards of Convex Coins.
73+
Code in convex-core is provided under the [Convex Public License](../LICENSE.md).
2974

30-
Copyright 2018-2024 Convex Foundation and Contributors
75+
Contributors are encouraged to sign the Convex Contributor's Agreement, which may make contributors eligible for awards of Convex Coins.

convex-gui/README.md

Lines changed: 34 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,57 @@
1-
# Convex Desktop GUI
1+
# Convex Desktop
22

3-
Convex Desktop is a full featured desktop application for working with Convex. It is intended for developers who wish to build solutions on Convex as well as power users who wish to work directly with assets and smart contracts on the Convex Network.
3+
[![Maven Central](https://img.shields.io/maven-central/v/world.convex/convex-gui.svg?label=Maven%20Central)](https://search.maven.org/search?q=world.convex)
44

5-
Key features:
6-
- Execute transactions on Convex networks
7-
- Secure key generation and wallet management
8-
- Run a local network of Convex Peers
9-
- Visualisation of CPoS consensus and network messaging
10-
- Simulations and stress test code
5+
A full-featured desktop application for developers and power users working with the [Convex](https://convex.world) decentralized network.
116

127
![Screenshot](docs/images/convex-desktop.png)
138

14-
```
15-
Unleash the power of the Convex decentralized network directly from your desktop. The Convex GUI
16-
application puts the control center for Web3 innovation at your fingertips. Designed for power users
17-
and developers, this intuitive interface empowers you to seamlessly interact with Convex, build
18-
next-generation dApps, and navigate the future of a democratized internet – all within a familiar
19-
and efficient desktop environment. Take command of your decentralized experience.
20-
21-
Download the Convex GUI today.
22-
23-
- Google Gemini
24-
```
9+
## Features
2510

26-
## Usage
11+
- **Transaction Execution** - Submit transactions and queries to Convex networks
12+
- **Wallet Management** - Secure key generation and account management
13+
- **Local Network** - Run a local Convex peer cluster for development
14+
- **Network Visualization** - Real-time view of CPoS consensus and messaging
15+
- **Testing Tools** - Simulations and stress testing capabilities
2716

28-
### Building
17+
## Quick Start
2918

30-
You will need a recent version of Java (21+) and Maven (3.7+) installed
19+
### Download
3120

32-
You can then build the latest version of Convex Desktop as follows:
21+
Download `convex.jar` from the [releases page](https://github.com/Convex-Dev/convex/releases).
3322

34-
- Download the convex repository via git `https://github.com/Convex-Dev/convex.git` or using the zip download `https://github.com/Convex-Dev/convex/archive/refs/heads/develop.zip`
35-
- Run `mvn install` in the root directory (this will build all Convex modules)
36-
- The Convex `.jar` file should be created at `convex-integration/target/convex.jar`
23+
### Run
24+
25+
```bash
26+
java -jar convex.jar desktop
27+
```
3728

38-
### Running Convex Desktop
29+
On Windows, you can also double-click `convex.jar` if Java is properly configured.
3930

40-
If Java is properly installed on your machine, you should be able to run the `convex.jar` file directly as a Java application (double click on Windows).
31+
## Building from Source
4132

42-
Alternatively, from the command line you can run the desktop with a Java command such as:
33+
**Requirements:** Java 21+, Maven 3.7+
4334

4435
```bash
45-
java -jar convex.jar desktop
36+
git clone https://github.com/Convex-Dev/convex.git
37+
cd convex
38+
mvn install
39+
java -jar convex-integration/target/convex.jar desktop
4640
```
4741

48-
This launches the Convex Desktop application main screen.
42+
## Documentation
43+
44+
- [Convex Documentation](https://docs.convex.world)
45+
- [CLI Reference](../convex-cli/README.md)
46+
- [GitHub Repository](https://github.com/Convex-Dev/convex)
4947

5048
## License
5149

52-
Copyright 2019-2024 The Convex Foundation and Contributors
50+
Copyright 2019-2025 The Convex Foundation and Contributors
5351

54-
Code in convex-gui is provided under the [Convex Public License](../LICENSE.md). Alternate licenses can be granted for developers in the Convex ecosystem who have specific requirements - contact @mikera to discuss
52+
Code in convex-gui is provided under the [Convex Public License](../LICENSE.md).
5553

56-
Feather Icons (https://github.com/feathericons/feather) used under MIT license
54+
### Third-Party Licenses
5755

58-
Material UI Swing (https://github.com/vincenzopalazzo/material-ui-swing) used under MIT license.
56+
- [Feather Icons](https://github.com/feathericons/feather) - MIT License
57+
- [Material UI Swing](https://github.com/vincenzopalazzo/material-ui-swing) - MIT License

convex-integration/README.md

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,52 @@
11
# Convex Integration
22

3-
This module is used for contructing primary Convex artifacts and integration testing.
3+
Build assembly and integration testing module for [Convex](https://convex.world).
44

5-
## `convex.jar` construction
5+
## Purpose
66

7-
The `convex-integration` module builds `convex.jar` as a fat jar with dependencies for convenient distribution and usage (e.g. at the CLI)
7+
This module produces the `convex.jar` distribution artifact - a self-contained executable JAR with all dependencies included for easy distribution and command-line usage.
8+
9+
## Build Output
10+
11+
After building, `convex.jar` is located at:
12+
13+
```
14+
convex-integration/target/convex.jar
15+
```
16+
17+
## Building
18+
19+
```bash
20+
cd convex
21+
mvn clean install
22+
```
23+
24+
The JAR is created during the standard Maven build process.
25+
26+
## Running
27+
28+
```bash
29+
# Launch desktop GUI
30+
java -jar convex-integration/target/convex.jar desktop
31+
32+
# Use CLI commands
33+
java -jar convex-integration/target/convex.jar --help
34+
java -jar convex-integration/target/convex.jar local start
35+
java -jar convex-integration/target/convex.jar key generate
36+
```
37+
38+
See the [CLI documentation](../convex-cli/README.md) for full command reference.
839

940
## Integration Tests
1041

11-
To run live integration tests do:
42+
Run live integration tests against a running network:
1243

1344
```bash
1445
mvn verify -Pintegration-tests
15-
```
46+
```
47+
48+
## License
49+
50+
Copyright 2020-2025 The Convex Foundation and Contributors
51+
52+
Code in convex-integration is provided under the [Convex Public License](../LICENSE.md).

0 commit comments

Comments
 (0)