{"id":18422016,"url":"https://github.com/spcl/kafkadirect","last_synced_at":"2025-04-07T14:32:16.646Z","repository":{"id":50505177,"uuid":"490212719","full_name":"spcl/kafkadirect","owner":"spcl","description":"RDMA-enabled Apache Kafka","archived":false,"fork":false,"pushed_at":"2022-06-13T12:13:18.000Z","size":8380,"stargazers_count":18,"open_issues_count":1,"forks_count":7,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-22T19:45:07.577Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spcl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security.html","support":null}},"created_at":"2022-05-09T09:16:17.000Z","updated_at":"2025-01-29T14:37:25.000Z","dependencies_parsed_at":"2022-09-21T13:12:49.248Z","dependency_job_id":null,"html_url":"https://github.com/spcl/kafkadirect","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spcl%2Fkafkadirect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spcl%2Fkafkadirect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spcl%2Fkafkadirect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spcl%2Fkafkadirect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spcl","download_url":"https://codeload.github.com/spcl/kafkadirect/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247670072,"owners_count":20976497,"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":[],"created_at":"2024-11-06T04:27:45.246Z","updated_at":"2025-04-07T14:32:14.963Z","avatar_url":"https://github.com/spcl.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Apache Kafka\n=================\nSee our [web site](http://kafka.apache.org) for details on the project.\n\nYou need to have [Java](http://www.oracle.com/technetwork/java/javase/downloads/index.html) installed.\n\nJava 8 should be used for building in order to support both Java 8 and Java 11 at runtime.\n\nScala 2.12 is used by default, see below for how to use a different Scala version or all of the supported Scala versions.\n\n### Build a jar and run it ###\n    ./gradlew jar\n\nFollow instructions in http://kafka.apache.org/documentation.html#quickstart\n\n### Build source jar ###\n    ./gradlew srcJar\n\n### Build aggregated javadoc ###\n    ./gradlew aggregatedJavadoc\n\n### Build javadoc and scaladoc ###\n    ./gradlew javadoc\n    ./gradlew javadocJar # builds a javadoc jar for each module\n    ./gradlew scaladoc\n    ./gradlew scaladocJar # builds a scaladoc jar for each module\n    ./gradlew docsJar # builds both (if applicable) javadoc and scaladoc jars for each module\n\n### Run unit/integration tests ###\n    ./gradlew test # runs both unit and integration tests\n    ./gradlew unitTest\n    ./gradlew integrationTest\n    \n### Force re-running tests without code change ###\n    ./gradlew cleanTest test\n    ./gradlew cleanTest unitTest\n    ./gradlew cleanTest integrationTest\n\n### Running a particular unit/integration test ###\n    ./gradlew clients:test --tests RequestResponseTest\n\n### Running a particular test method within a unit/integration test ###\n    ./gradlew core:test --tests kafka.api.ProducerFailureHandlingTest.testCannotSendToInternalTopic\n    ./gradlew clients:test --tests org.apache.kafka.clients.MetadataTest.testMetadataUpdateWaitTime\n\n### Running a particular unit/integration test with log4j output ###\nChange the log4j setting in either `clients/src/test/resources/log4j.properties` or `core/src/test/resources/log4j.properties`\n\n    ./gradlew clients:test --tests RequestResponseTest\n\n### Generating test coverage reports ###\nGenerate coverage reports for the whole project:\n\n    ./gradlew reportCoverage\n\nGenerate coverage for a single module, i.e.: \n\n    ./gradlew clients:reportCoverage\n    \n### Building a binary release gzipped tar ball ###\n    ./gradlew clean releaseTarGz\n\nThe above command will fail if you haven't set up the signing key. To bypass signing the artifact, you can run:\n\n    ./gradlew clean releaseTarGz -x signArchives\n\nThe release file can be found inside `./core/build/distributions/`.\n\n### Cleaning the build ###\n    ./gradlew clean\n\n### Running a task with a particular version of Scala (either 2.11.x or 2.12.x) ###\n*Note that if building the jars with a version other than 2.12.x, you need to set the `SCALA_VERSION` variable or change it in `bin/kafka-run-class.sh` to run the quick start.*\n\nYou can pass either the major version (eg 2.12) or the full version (eg 2.12.7):\n\n    ./gradlew -PscalaVersion=2.12 jar\n    ./gradlew -PscalaVersion=2.12 test\n    ./gradlew -PscalaVersion=2.12 releaseTarGz\n\n### Running a task with all scala versions ###\n\nAppend `All` to the task name:\n\n    ./gradlew testAll\n    ./gradlew jarAll\n    ./gradlew releaseTarGzAll\n\n### Running a task for a specific project ###\nThis is for `core`, `examples` and `clients`\n\n    ./gradlew core:jar\n    ./gradlew core:test\n\n### Listing all gradle tasks ###\n    ./gradlew tasks\n\n### Building IDE project ####\n*Note that this is not strictly necessary (IntelliJ IDEA has good built-in support for Gradle projects, for example).*\n\n    ./gradlew eclipse\n    ./gradlew idea\n\nThe `eclipse` task has been configured to use `${project_dir}/build_eclipse` as Eclipse's build directory. Eclipse's default\nbuild directory (`${project_dir}/bin`) clashes with Kafka's scripts directory and we don't use Gradle's build directory\nto avoid known issues with this configuration.\n\n### Publishing the jar for all version of Scala and for all projects to maven ###\n    ./gradlew uploadArchivesAll\n\nPlease note for this to work you should create/update `${GRADLE_USER_HOME}/gradle.properties` (typically, `~/.gradle/gradle.properties`) and assign the following variables\n\n    mavenUrl=\n    mavenUsername=\n    mavenPassword=\n    signing.keyId=\n    signing.password=\n    signing.secretKeyRingFile=\n\n### Publishing the streams quickstart archetype artifact to maven ###\nFor the Streams archetype project, one cannot use gradle to upload to maven; instead the `mvn deploy` command needs to be called at the quickstart folder:\n\n    cd streams/quickstart\n    mvn deploy\n\nPlease note for this to work you should create/update user maven settings (typically, `${USER_HOME}/.m2/settings.xml`) to assign the following variables\n\n    \u003csettings xmlns=\"http://maven.apache.org/SETTINGS/1.0.0\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xsi:schemaLocation=\"http://maven.apache.org/SETTINGS/1.0.0\n                           https://maven.apache.org/xsd/settings-1.0.0.xsd\"\u003e\n    ...                           \n    \u003cservers\u003e\n       ...\n       \u003cserver\u003e\n          \u003cid\u003eapache.snapshots.https\u003c/id\u003e\n          \u003cusername\u003e${maven_username}\u003c/username\u003e\n          \u003cpassword\u003e${maven_password}\u003c/password\u003e\n       \u003c/server\u003e\n       \u003cserver\u003e\n          \u003cid\u003eapache.releases.https\u003c/id\u003e\n          \u003cusername\u003e${maven_username}\u003c/username\u003e\n          \u003cpassword\u003e${maven_password}\u003c/password\u003e\n        \u003c/server\u003e\n        ...\n     \u003c/servers\u003e\n     ...\n\n\n### Installing the jars to the local Maven repository ###\n    ./gradlew installAll\n\n### Building the test jar ###\n    ./gradlew testJar\n\n### Determining how transitive dependencies are added ###\n    ./gradlew core:dependencies --configuration runtime\n\n### Determining if any dependencies could be updated ###\n    ./gradlew dependencyUpdates\n\n### Running code quality checks ###\nThere are two code quality analysis tools that we regularly run, spotbugs and checkstyle.\n\n#### Checkstyle ####\nCheckstyle enforces a consistent coding style in Kafka.\nYou can run checkstyle using:\n\n    ./gradlew checkstyleMain checkstyleTest\n\nThe checkstyle warnings will be found in `reports/checkstyle/reports/main.html` and `reports/checkstyle/reports/test.html` files in the\nsubproject build directories. They are also are printed to the console. The build will fail if Checkstyle fails.\n\n#### Spotbugs ####\nSpotbugs uses static analysis to look for bugs in the code.\nYou can run spotbugs using:\n\n    ./gradlew spotbugsMain spotbugsTest -x test\n\nThe spotbugs warnings will be found in `reports/spotbugs/main.html` and `reports/spotbugs/test.html` files in the subproject build\ndirectories.  Use -PxmlSpotBugsReport=true to generate an XML report instead of an HTML one.\n\n### Common build options ###\n\nThe following options should be set with a `-P` switch, for example `./gradlew -PmaxParallelForks=1 test`.\n\n* `commitId`: sets the build commit ID as .git/HEAD might not be correct if there are local commits added for build purposes.\n* `mavenUrl`: sets the URL of the maven deployment repository (`file://path/to/repo` can be used to point to a local repository).\n* `maxParallelForks`: limits the maximum number of processes for each task.\n* `showStandardStreams`: shows standard out and standard error of the test JVM(s) on the console.\n* `skipSigning`: skips signing of artifacts.\n* `testLoggingEvents`: unit test events to be logged, separated by comma. For example `./gradlew -PtestLoggingEvents=started,passed,skipped,failed test`.\n* `xmlSpotBugsReport`: enable XML reports for spotBugs. This also disables HTML reports as only one can be enabled at a time.\n\n### Running in Vagrant ###\n\nSee [vagrant/README.md](vagrant/README.md).\n\n### Contribution ###\n\nApache Kafka is interested in building the community; we would welcome any thoughts or [patches](https://issues.apache.org/jira/browse/KAFKA). You can reach us [on the Apache mailing lists](http://kafka.apache.org/contact.html).\n\nTo contribute follow the instructions here:\n * http://kafka.apache.org/contributing.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspcl%2Fkafkadirect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspcl%2Fkafkadirect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspcl%2Fkafkadirect/lists"}