https://github.com/swimos/swim-runtime-java
Self-contained distributed software platform for building stateful, massively real-time streaming applications that run on any Java 8+ VM.
https://github.com/swimos/swim-runtime-java
Last synced: 4 months ago
JSON representation
Self-contained distributed software platform for building stateful, massively real-time streaming applications that run on any Java 8+ VM.
- Host: GitHub
- URL: https://github.com/swimos/swim-runtime-java
- Owner: swimos
- Created: 2019-07-16T17:26:52.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2023-12-15T21:56:57.000Z (almost 2 years ago)
- Last Synced: 2025-04-08T12:46:50.943Z (6 months ago)
- Language: Java
- Homepage: https://swimOS.org
- Size: 8.86 MB
- Stars: 13
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
The Swim backend runtime provides a self-contained application server for
hosting stateful Web Agents. The runtime provides Web Agent applications with:- **Compute Scheduling:** Each Web Agent runs in a long-lived logical compute
process that executes arbitrary application code in response to real-time
state changes, scheduled timers, and other system events.
- **State Management:** The program state of each agent is preserved locally
between operations. Processing latencies are measured in nanoseconds—the time
needed to access local memory.
- **Local Persistence:** Unused state is transparently persisted to local disks,
when available. Web Agents pick up where they left off afte a restart. And
vastly more data than fits in main memory can be maintained as agent state.
- **Cache Coherence:** Web Agents operate on locally materialized views of
remote states. Real-time changes made to one view of a shared state propagate
to all other linked views with ping latency. A cache coherent streaming
memory model ensures that all views consistently converge to the same state.## Documentation
- [API Docs][api-docs]
## Runtime
To embed the Swim backend runtime in a Java application, add the `swim-runtime`
library as a dependency of the project.#### Gradle
```groovy
compile group: 'org.swimos', name: 'swim-runtime', version: '4.1.0-SNAPSHOT'
```#### Maven
```xml
org.swimos
swim-runtime
4.1.0-SNAPSHOT```
## Development
The Swim backend stack runs on any Java 11+ JVM. Depending only on the minimal
`java.base` module, it has no other Java library dependencies.### Build Environment
Install a Java 11+ JDK, such as [OpenJDK][openjdk] or [GraalVM][graalvm].
The stack is built with [Gradle][gradle], which can be invoked via the
included `gradlew` script.### Compiling sources
```sh
./gradlew compileJava
```### Running unit tests
```sh
./gradlew test
```### Building API docs
```sh
./gradlew :javadoc
```## Contributing
Take a look at the [Contributing Guide][contributing] to learn about our
submission process, coding standards, and more.[api-docs]: https://docs.swimos.org/java/4.x
[openjdk]: https://openjdk.java.net
[graalvm]: https://www.graalvm.org/downloads/
[gradle]: https://gradle.org
[contributing]: CONTRIBUTING.md