{"id":11909561,"name":"github.com/rulego/streamsql","ecosystem":"go","description":"Package streamsql is a lightweight, SQL-based IoT edge stream processing engine.\n\nStreamSQL provides efficient unbounded data stream processing and analysis capabilities,\nsupporting multiple window types, aggregate functions, custom functions, and seamless\nintegration with the RuleGo ecosystem.\n\n• Lightweight design - Pure in-memory operations, no external dependencies\n• SQL syntax support - Process stream data using familiar SQL syntax\n• Multiple window types - Sliding, tumbling, counting, and session windows\n• Event time and processing time - Support both time semantics for accurate stream processing\n• Watermark mechanism - Handle out-of-order and late-arriving data with configurable tolerance\n• Rich aggregate functions - MAX, MIN, AVG, SUM, STDDEV, MEDIAN, PERCENTILE, etc.\n• Plugin-based custom functions - Runtime dynamic registration, supports 8 function types\n• RuleGo ecosystem integration - Extend input/output sources using RuleGo components\n\nBasic stream data processing:\n\nStreamSQL supports multiple window types:\n\nStreamSQL supports two time semantics for window processing:\n\n## Processing Time (Default)\n\nProcessing time uses the system clock when data arrives. Windows are triggered based on data arrival time:\n\n## Event Time\n\nEvent time uses timestamps embedded in the data itself. Windows are triggered based on event timestamps,\nallowing correct handling of out-of-order and late-arriving data:\n\n## Watermark and Late Data Handling\n\nEvent time windows use watermark mechanism to handle out-of-order and late data:\n\nKey concepts:\n• MaxOutOfOrderness: Affects watermark calculation, delays window trigger to tolerate out-of-order data\n• AllowedLateness: Keeps window open after trigger to accept late data and update results\n• IdleTimeout: When data source is idle (no data arrives within timeout), watermark advances based on processing time to ensure windows can close\n• Watermark: Indicates that no events with timestamp less than watermark are expected\n\nStreamSQL supports plugin-based custom functions with runtime dynamic registration:\n\nSupported custom function types:\n• TypeMath - Mathematical calculation functions\n• TypeString - String processing functions\n• TypeConversion - Type conversion functions\n• TypeDateTime - Date and time functions\n• TypeAggregation - Aggregate functions\n• TypeAnalytical - Analytical functions\n• TypeWindow - Window functions\n• TypeCustom - General custom functions\n\nStreamSQL provides flexible log configuration options:\n\nStreamSQL provides deep integration with the RuleGo rule engine through two dedicated components for stream data processing:\n\n• streamTransform (x/streamTransform) - Stream transformer, handles non-aggregation SQL queries\n• streamAggregator (x/streamAggregator) - Stream aggregator, handles aggregation SQL queries\n\nBasic integration example:","homepage":"https://github.com/rulego/streamsql","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/rulego/streamsql","keywords_array":[],"namespace":"github.com/rulego","versions_count":8,"first_release_published_at":"2025-07-27T05:20:52.000Z","latest_release_published_at":"2026-01-19T14:20:02.000Z","latest_release_number":"v0.10.7","last_synced_at":"2026-05-08T13:51:35.503Z","created_at":"2025-07-14T10:40:29.926Z","updated_at":"2026-05-08T13:51:35.503Z","registry_url":"https://pkg.go.dev/github.com/rulego/streamsql","install_command":"go get github.com/rulego/streamsql","documentation_url":"https://pkg.go.dev/github.com/rulego/streamsql#section-documentation","metadata":{},"repo_metadata":{"id":282153831,"uuid":"741309435","full_name":"rulego/streamsql","owner":"rulego","description":"Lightweight SQL-based stream processing engine for IoT edge.","archived":false,"fork":false,"pushed_at":"2025-10-08T04:01:46.000Z","size":1553,"stargazers_count":46,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-08T06:05:59.634Z","etag":null,"topics":["edge-analytics","edge-computing","iot","rulego","sql","stats","stream"],"latest_commit_sha":null,"homepage":"https://rulego.cc/en/pages/streamsql-overview/","language":"Go","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/rulego.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-10T06:01:09.000Z","updated_at":"2025-10-08T04:01:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"04e0a708-1d76-4194-a8cb-f5b3abe95851","html_url":"https://github.com/rulego/streamsql","commit_stats":null,"previous_names":["rulego/streamsql"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/rulego/streamsql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rulego","download_url":"https://codeload.github.com/rulego/streamsql/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002105,"owners_count":26083307,"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-10-09T02:00:07.460Z","response_time":59,"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"},"owner_record":{"login":"rulego","name":"rulego","uuid":"140332315","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/140332315?v=4","repositories_count":1,"last_synced_at":"2023-07-23T16:34:48.319Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rulego","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-07-23T16:34:48.362Z","updated_at":"2023-07-23T16:34:48.362Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rulego","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rulego/repositories"},"tags":[{"name":"v0.10.3","sha":"b23fdea2cd25634464d71f5612d7f1a336f45f33","kind":"tag","published_at":"2025-08-29T09:45:27.000Z","download_url":"https://codeload.github.com/rulego/streamsql/tar.gz/v0.10.3","html_url":"https://github.com/rulego/streamsql/releases/tag/v0.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rulego/streamsql@v0.10.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/tags/v0.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/tags/v0.10.3/manifests"},{"name":"v0.10.2","sha":"de6ca91c0198d29bbe8a36f7a3a6802932b3b045","kind":"tag","published_at":"2025-08-08T10:03:12.000Z","download_url":"https://codeload.github.com/rulego/streamsql/tar.gz/v0.10.2","html_url":"https://github.com/rulego/streamsql/releases/tag/v0.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rulego/streamsql@v0.10.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/tags/v0.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/tags/v0.10.2/manifests"},{"name":"v0.10.1","sha":"8475810768819cc3c95674ffa34ba53506450b0d","kind":"tag","published_at":"2025-07-30T11:34:35.000Z","download_url":"https://codeload.github.com/rulego/streamsql/tar.gz/v0.10.1","html_url":"https://github.com/rulego/streamsql/releases/tag/v0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rulego/streamsql@v0.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/tags/v0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/tags/v0.10.1/manifests"},{"name":"v0.10.0","sha":"e02413c242f88d39bcd5e3c4fd043a10e81ffc65","kind":"tag","published_at":"2025-07-27T10:52:39.000Z","download_url":"https://codeload.github.com/rulego/streamsql/tar.gz/v0.10.0","html_url":"https://github.com/rulego/streamsql/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rulego/streamsql@v0.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/tags/v0.10.0/manifests"}]},"repo_metadata_updated_at":"2025-10-09T22:36:00.926Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.644193973653304,"dependent_packages_count":5.288939464944486,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.4665667192988945},"purl":"pkg:golang/github.com/rulego/streamsql","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/rulego/streamsql","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/rulego/streamsql","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/rulego/streamsql/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-09-09T19:42:40.546Z","issues_count":4,"pull_requests_count":46,"avg_time_to_close_issue":361021.0,"avg_time_to_close_pull_request":6861.833333333333,"issues_closed_count":1,"pull_requests_closed_count":42,"pull_request_authors_count":2,"issue_authors_count":3,"avg_comments_per_issue":1.0,"avg_comments_per_pull_request":0.2608695652173913,"merged_pull_requests_count":42,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":4,"past_year_pull_requests_count":46,"past_year_avg_time_to_close_issue":361021.0,"past_year_avg_time_to_close_pull_request":6861.833333333333,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":42,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.2608695652173913,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":42,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulego%2Fstreamsql/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frulego%2Fstreamsql/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frulego%2Fstreamsql/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frulego%2Fstreamsql/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frulego%2Fstreamsql/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frulego%2Fstreamsql/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frulego%2Fstreamsql/codemeta","maintainers":[]}