{"id":13481924,"url":"https://github.com/nanosai/stream-ops-java","last_synced_at":"2026-01-14T02:56:23.287Z","repository":{"id":144531113,"uuid":"187457354","full_name":"nanosai/stream-ops-java","owner":"nanosai","description":"Stream Ops is a fully embeddable data streaming engine and stream processing API for Java.","archived":false,"fork":false,"pushed_at":"2019-10-20T14:39:19.000Z","size":101,"stargazers_count":49,"open_issues_count":4,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-08-03T15:39:35.012Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nanosai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-05-19T09:30:00.000Z","updated_at":"2025-01-05T05:03:18.000Z","dependencies_parsed_at":"2024-01-22T20:15:09.393Z","dependency_job_id":null,"html_url":"https://github.com/nanosai/stream-ops-java","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nanosai/stream-ops-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanosai%2Fstream-ops-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanosai%2Fstream-ops-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanosai%2Fstream-ops-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanosai%2Fstream-ops-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nanosai","download_url":"https://codeload.github.com/nanosai/stream-ops-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanosai%2Fstream-ops-java/sbom","scorecard":{"id":674107,"data":{"date":"2025-08-11","repo":{"name":"github.com/nanosai/stream-ops-java","commit":"a289d22932ed982039d19833cc1050802e2897db"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/23 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 0.7.0 not signed: https://api.github.com/repos/nanosai/stream-ops-java/releases/20833884","Warn: release artifact 0.7.0 does not have provenance: https://api.github.com/repos/nanosai/stream-ops-java/releases/20833884"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T21:00:31.973Z","repository_id":144531113,"created_at":"2025-08-21T21:00:31.973Z","updated_at":"2025-08-21T21:00:31.973Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"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":[],"created_at":"2024-07-31T17:00:57.503Z","updated_at":"2026-01-14T02:56:23.266Z","avatar_url":"https://github.com/nanosai.png","language":"Java","funding_links":[],"categories":["Table of Contents","大数据"],"sub_categories":["Streaming Library","微服务框架"],"readme":"# Stream Ops for Java\n\n - [Introduction](#introduction)\n - [Stream Ops Tutorial](#stream-ops-tutorial)\n - [The 1 Billion Records Per Second Challenge](#1brs)\n - [License](#license)\n - [Getting Started](#getting-started)\n - [Maven Dependency](#maven-dependency)\n - [Dependencies](#dependencies)\n\n\n\u003ca name=\"introduction\"\u003e\u003c/a\u003e\n\n# Introduction\nStream Ops for Java is a fully embeddable data streaming engine and stream processing API for Java.\nThe data streaming engine and the stream processing API can be used together, or separately.\n\nStream Ops addresses the same use cases as Kafka, but with some significant design differences which gives you\na higher degree of architectural freedom. You can embed Stream Ops in a mobile app, desktop app, microservice,\nweb app backend, and possibly also inside serverless functions like AWS Lambda etc. (we are still looking into\nhow this can be done) and Google App Engine apps.\n\nStream Ops design differences also supports a wider set of use cases than Kafka does out-of-the-box. We will\ndescribe these differences as the code that provides them is cleaned up and released.\n\nStream Ops is developed by Nanosai: [http://nanosai.com](https://nanosai.com)\n\n\n\u003ca name=\"stream-ops-tutorial\"\u003e\u003c/a\u003e\n\n# Stream Ops Tutorial\nWe have a Stream Ops tutorial in progress here:\n\n[http://tutorials.jenkov.com/stream-ops-java/index.html](http://tutorials.jenkov.com/stream-ops-java/index.html)\n\n\n\n\n\u003ca name=\"1brs\"\u003e\u003c/a\u003e\n\n# The 1 Billion Records Per Second Challenge\nWe (Nanosai) will try to get Stream Ops to be able to process 1 billion records per second. You can read more about\nthat challenge at [The 1BRS Challenge](https://nanosai.com/1brs-challenge).\n\n\n\u003ca name=\"license\"\u003e\u003c/a\u003e\n\n# License\nThe intention is to release Stream Ops under the Apache License 2.0 . We need to discuss this a bit further internally\nin Nanosai, but in any case, it will be something close to that.\n\n\n\u003ca name=\"getting-started\"\u003e\n\n# Getting Started\n\nThe easiest way to use Stream Ops is via Maven. See the Maven dependency for Stream Ops in the next section.\n\nAlternatively you can clone Stream Ops and build it yourself. Stream Ops have 2 small dependencies which you may\n(or may not) have to clone too. That depends on what you are trying to do. The dependencies are also available\nfrom the central Maven repository though, so it is not necessary to clone and build them. Not unless you want\nto compile them all using a different Java version than the Java version they are currently built with.\n\n\n\u003ca name=\"maven-dependency\"\u003e\u003c/a\u003e\n# Maven Dependency\n\nIf you want to use Stream Ops with Maven, the Maven dependency for Stream Ops looks like this:\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.nanosai\u003c/groupId\u003e\n        \u003cartifactId\u003estream-ops\u003c/artifactId\u003e\n        \u003cversion\u003e0.7.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\nRemember to substitute the version number with the version of Stream Ops you want to use. You can see the\nversion history of Stream Ops further down this page.\n\n\n\u003ca name=\"dependencies\"\u003e\u003c/a\u003e\n\n# Dependencies\nStream Ops depends on these two other Nanosai projects:\n\n - [Mem Ops for Java](https://github.com/nanosai/mem-ops-java)\n - [RION Ops for Java](https://github.com/nanosai/rion-ops-java)\n\n\n\n\u003ca name=\"version-history\"\u003e\u003c/a\u003e\n\n# Version History\n\n| Version | Java Version | Change |\n|---------|--------------|--------|\n| 0.7.0   | Java 8       | First release |\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanosai%2Fstream-ops-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnanosai%2Fstream-ops-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanosai%2Fstream-ops-java/lists"}