{"id":36606582,"url":"https://github.com/cyanpotion/cyan_zip","last_synced_at":"2026-01-12T08:45:56.493Z","repository":{"id":35048304,"uuid":"176444653","full_name":"cyanpotion/cyan_zip","owner":"cyanpotion","description":"a multi-forcasting-range-encode compressing algorithm.","archived":false,"fork":false,"pushed_at":"2025-12-22T13:38:29.000Z","size":40433,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-24T00:23:28.623Z","etag":null,"topics":["algorithm","compression","range-encode"],"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/cyanpotion.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":"2019-03-19T06:55:12.000Z","updated_at":"2025-12-22T13:38:32.000Z","dependencies_parsed_at":"2024-01-22T19:17:12.563Z","dependency_job_id":null,"html_url":"https://github.com/cyanpotion/cyan_zip","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cyanpotion/cyan_zip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyanpotion%2Fcyan_zip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyanpotion%2Fcyan_zip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyanpotion%2Fcyan_zip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyanpotion%2Fcyan_zip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyanpotion","download_url":"https://codeload.github.com/cyanpotion/cyan_zip/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyanpotion%2Fcyan_zip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["algorithm","compression","range-encode"],"created_at":"2026-01-12T08:45:55.855Z","updated_at":"2026-01-12T08:45:56.481Z","avatar_url":"https://github.com/cyanpotion.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cyan_zip\nzip module of cyan_potion game engine.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nIt is still in development, and every part of it is not fully tested, so it is not recommend to be used in your own project for now.\n\n# done:\nBy now, we implemented an algorithm that is based on ranged encoding, the only difference is it used not the current proportion of some char to encode it, but use the predicted proportion of that char. the \"predicted proportion\" is calculated using the last 3 chars.\n\nWe also provided an InputStream class and an OutputStream class to make things easier.\n\nYou can see the implementation details in package com.xenoamess.cyan_zip.forecastingRangeEncoding\n\nYou can see the usecases in test folder.\n\n# todo:\n\nWe will build a file format to zip several files into one data file, and every file can be random accessed.\n\nWhen you want to package the resources, first you prepare two passwords, password A is reserved by yourself, and password B is put in all game copies and given to your players.\n\nWhen you decide to encrypt your game resources, first you list them in a folder\n\nThen you run a program provided to generate encrypted file names using password A.\n\nThen the package program will encrypted the files using password B, and put them with encrypted filenames into a single file.\n\nWhen running the game, the player will use the file names A to fetch the file content B, and use B to get the raw files.\n\nAnd they will never know about password A, which means your resource file names are always safe.\n\nThat means even if they unpack your sources file, they will have no idea which file is what format, and they can only test them one by one.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyanpotion%2Fcyan_zip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyanpotion%2Fcyan_zip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyanpotion%2Fcyan_zip/lists"}