{"id":23370365,"url":"https://github.com/infumia/pubsub","last_synced_at":"2026-04-15T06:32:46.992Z","repository":{"id":243295437,"uuid":"811966424","full_name":"Infumia/pubsub","owner":"Infumia","description":"Simplified pubsub library for Redis and various databases.","archived":false,"fork":false,"pushed_at":"2025-04-01T13:39:53.000Z","size":258,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-01T14:37:29.990Z","etag":null,"topics":["jackson","java","kotlin","pubsub","redis"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Infumia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-07T17:01:42.000Z","updated_at":"2025-04-01T13:39:56.000Z","dependencies_parsed_at":"2024-08-14T14:04:22.922Z","dependency_job_id":"2587f473-d532-4807-a251-fb813eda3763","html_url":"https://github.com/Infumia/pubsub","commit_stats":null,"previous_names":["infumia/pubsub"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infumia%2Fpubsub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infumia%2Fpubsub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infumia%2Fpubsub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infumia%2Fpubsub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Infumia","download_url":"https://codeload.github.com/Infumia/pubsub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247755571,"owners_count":20990622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jackson","java","kotlin","pubsub","redis"],"created_at":"2024-12-21T15:36:54.956Z","updated_at":"2026-04-15T06:32:41.965Z","avatar_url":"https://github.com/Infumia.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pubsub\n[![Maven Central Version](https://img.shields.io/maven-central/v/net.infumia/pubsub)](https://central.sonatype.com/artifact/net.infumia/pubsub)\n## How to Use (Developers)\n### Gradle\n```groovy\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    // Base modules\n    implementation \"net.infumia:pubsub:VERSION\"\n    implementation \"net.infumia:pubsub-codec:VERSION\"\n    // Required, https://mvnrepository.com/artifact/com.github.ben-manes.caffeine/caffeine/\n    implementation \"com.github.ben-manes.caffeine:caffeine:2.9.3\" // for java-8+\n    implementation \"com.github.ben-manes.caffeine:caffeine:3.1.8\" // for java-11+\n\n    // Pub/Sub using Redis (Optional)\n    implementation \"net.infumia:pubsub-redis:VERSION\"\n    // Required, https://mvnrepository.com/artifact/io.lettuce/lettuce-core/\n    implementation \"io.lettuce:lettuce-core:6.3.2.RELEASE\"\n\n    // A simple codec using Jackson (Optional)\n    implementation \"net.infumia:pubsub-jackson:VERSION\"\n    // Required, https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/\n    implementation \"com.fasterxml.jackson.core:jackson-databind:2.17.1\"\n\n    // Kotlin extensions (Optional)\n    implementation \"net.infumia:pubsub-kotlin:VERSION\"\n\n    // Kotlin coroutines (Optional)\n    implementation \"net.infumia:pubsub-kotlin-coroutines:VERSION\"\n    // Required, https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core/\n    implementation \"org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1\"\n\n    // Kotlin protobuf serializer (Optional)\n    implementation \"net.infumia:pubsub-kotlin-protobuf:VERSION\"\n    // Required, https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-reflect/\n    implementation \"org.jetbrains.kotlin:kotlin-reflect:2.0.0\"\n    // Required, https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-serialization-core/\n    implementation \"org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.0\"\n    // Required, https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-serialization-protobuf/\n    implementation \"org.jetbrains.kotlinx:kotlinx-serialization-protobuf:1.7.0\"\n}\n```\n### Code\n```kotlin\nfun main() {\n    val mapper = ObjectMapper()\n    val redisCredentials = RedisCredentials.just(null, \"local\")\n    val redisAuth = StaticCredentialsProvider(redisCredentials)\n    val redisUri = RedisURI.builder()\n        .withHost(\"localhost\")\n        .withPort(6379)\n        .withAuthentication(redisAuth)\n        .build()\n    val client = RedisClient.create(redisUri)\n    val codecProviderJackson = CodecProviderJackson { mapper }\n    val codecProvider = CodecProviderCached(codecProviderJackson)\n    val broker = BrokerRedisNoTargetProvider(codecProvider) { client }\n    broker.initialize()\n    broker.listen\u003cTest\u003e {\n        println(it.test)\n    }\n    while (true) {\n        broker.send(Test(\"Hello World\"))\n        Thread.sleep(1000L)\n    }\n    // ...\n    broker.close()\n}\n\nclass Test(var test: String = \"\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfumia%2Fpubsub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfumia%2Fpubsub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfumia%2Fpubsub/lists"}