{"id":25631791,"url":"https://github.com/esensar/neovim-java","last_synced_at":"2025-08-01T07:34:28.831Z","repository":{"id":38419160,"uuid":"134537813","full_name":"esensar/neovim-java","owner":"esensar","description":"Neovim Java client library. Provides multiple interfaces for communicating with Neovim instance via multiple different protocols. - Moved to https://codeberg.org/neovim-java/neovim-java","archived":false,"fork":false,"pushed_at":"2023-05-21T20:51:03.000Z","size":1210,"stargazers_count":45,"open_issues_count":7,"forks_count":9,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-24T15:05:10.386Z","etag":null,"topics":["java","library","msgpack","msgpackrpc","neovim","rpc","rxjava2"],"latest_commit_sha":null,"homepage":"https://neovim-java.codeberg.page","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/esensar.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2018-05-23T08:26:41.000Z","updated_at":"2024-11-12T08:13:24.000Z","dependencies_parsed_at":"2025-02-22T20:31:45.088Z","dependency_job_id":null,"html_url":"https://github.com/esensar/neovim-java","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/esensar/neovim-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esensar%2Fneovim-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esensar%2Fneovim-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esensar%2Fneovim-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esensar%2Fneovim-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esensar","download_url":"https://codeload.github.com/esensar/neovim-java/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esensar%2Fneovim-java/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268185560,"owners_count":24209392,"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","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["java","library","msgpack","msgpackrpc","neovim","rpc","rxjava2"],"created_at":"2025-02-22T20:31:29.483Z","updated_at":"2025-08-01T07:34:28.783Z","avatar_url":"https://github.com/esensar.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# neovim-java\n\n[![CI](https://ci.codeberg.org/api/badges/neovim-java/neovim-java/status.svg)](https://ci.codeberg.org/neovim-java/neovim-java)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.ensarsarajcic.neovim.java/parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.ensarsarajcic.neovim.java/parent)\n[![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/com.ensarsarajcic.neovim.java/parent?server=https%3A%2F%2Foss.sonatype.org)](https://oss.sonatype.org/content/repositories/snapshots/com/ensarsarajcic/neovim/java/)\n[![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/core-rpc/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java)\n\nNeovim Java client\n\nConsists of following modules:\n * **Core RPC** [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/core-rpc/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/core-rpc) - core of the library providing most basic interface for communicating with Neovim - it can be used without other modules, but other modules are recommended for most uses\n * **Reactive Core RPC**  [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/reactive-core-rpc/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/reactive-core-rpc) - simple wrapper around Core RPC module for providing a reactive interface\n * **Unix Socket Connection**  [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/unix-socket-connection/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/unix-socket-connection) - simple addition of another RPCConnection for using unix domain sockets\n * **Neovim API**  [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/neovim-api/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/neovim-api) - main interface for communicating with neovim. This is the recommended module to use, it provides a reactive interface and greatly simplified interface, providing complete implementations for all functions provided by Neovim.\n * **Neovim Rx API**  [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/neovim-rx-api/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/neovim-rx-api) - small wrapper around Neovim API providing RxJava2 interface instead of Java reactive interface\n * **Handler annotations**  [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/handler-annotations/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/handler-annotations) - addition allowing creation of annotation based handlers for requests and notifications\n * **Neovim notifications**  [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/neovim-notifications/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/neovim-notifications) - addition allowing usage of notifications through Java 9 Flows interface and also provides data models for all neovim notifications\n * **API Explorer**  [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/api-explorer/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/api-explorer) - simple JavaFX application used for testing library and exploring neovim API\n * **Plugin host**  [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/plugin-host/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/plugin-host) - library for building remote plugins - this should be the main dependency when developing Neovim plugins (either standalone or hosted by `plugins-common-host`) - enables easy usage with [neovim-java-plugin-host](https://codeberg.org/neovim-java/neovim-java-plugin-host)\n * **Plugins common host**  [![javadoc](https://javadoc.io/badge2/com.ensarsarajcic.neovim.java/plugins-common-host/javadoc.svg)](https://javadoc.io/doc/com.ensarsarajcic.neovim.java/plugins-common-host) - executable which can be used as a remote plugin in Neovim, which should load all other plugins from classpath (provided by [neovim-java-plugin-host](https://codeberg.org/neovim-java/neovim-java-plugin-host))\n\nMany features are not completely tested and this library was mostly built to experiment with Neovim RPC API, but there should be no issues with using this library.\n\nTo include this library right away and start working with Neovim, **Neovim API** is enough.\n\nInclude it in your dependencies:\nMaven(*Neovim API*):\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.ensarsarajcic.neovim.java\u003c/groupId\u003e\n  \u003cartifactId\u003eneovim-api\u003c/artifactId\u003e\n  \u003cversion\u003e${neovimjava.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\nGradle(*Neovim API*):\n```groovy\ncompile 'com.ensarsarajcic.neovim.java:neovim-api:${neovimjava.version}'\n```\n\nOr if you prefer RxJava2, use **Neovim Rx API**:\nMaven(*Neovim Rx API*):\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.ensarsarajcic.neovim.java\u003c/groupId\u003e\n  \u003cartifactId\u003eneovim-rx-api\u003c/artifactId\u003e\n  \u003cversion\u003e${neovimjava.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\nGradle(*Neovim Rx API*):\n```groovy\ncompile 'com.ensarsarajcic.neovim.java:neovim-rx-api:${neovimjava.version}'\n```\n\nIf you wish to use latest SNAPSHOT version, it is available in Sonatype snapshots repository.\n\nFor more information, check out README of modules you are interested in.\n\n## Remote plugin support\nThis repository contains a small remote plugin example in `rplugin-example`. To run this example run `mvn package` and run Neovim with provided vimrc by calling `nvim -u rplugin-example/vimrc` from project root.\n\nIt should be possible to then call the `:NeovimJavaIncrementCount` command which communicated with java plugin.\n\nIt is an example of a standalone rplugin which should provide its own configuration.\n\n`rplugin-hosted-example` is an example of a hosted plugin which can be easily loaded with [neovim-java-plugin-host](https://codeberg.org/neovim-java/neovim-java-plugin-host)\n\n## Contributing\n\nCheck out [contributing guidelines](CONTRIBUTING.md).\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesensar%2Fneovim-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesensar%2Fneovim-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesensar%2Fneovim-java/lists"}