{"id":26879044,"url":"https://github.com/artemijan/l2shablya","last_synced_at":"2025-05-07T18:09:21.652Z","repository":{"id":259469733,"uuid":"870257642","full_name":"artemijan/L2Shablya","owner":"artemijan","description":"Lineage 2 game server emulator written in rust ","archived":false,"fork":false,"pushed_at":"2025-04-13T22:30:29.000Z","size":11803,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-07T18:08:38.857Z","etag":null,"topics":["emulator","gamedev","interlude","l2","lineage2","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/artemijan.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LiCENSE.MD","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}},"created_at":"2024-10-09T18:02:06.000Z","updated_at":"2025-04-13T22:30:32.000Z","dependencies_parsed_at":"2024-12-17T20:24:51.652Z","dependency_job_id":"164afd8c-296e-468a-befa-27c69f20b152","html_url":"https://github.com/artemijan/L2Shablya","commit_stats":null,"previous_names":["artemijan/l2rust","artemijan/l2shablya"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemijan%2FL2Shablya","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemijan%2FL2Shablya/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemijan%2FL2Shablya/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemijan%2FL2Shablya/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artemijan","download_url":"https://codeload.github.com/artemijan/L2Shablya/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252931536,"owners_count":21827111,"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":["emulator","gamedev","interlude","l2","lineage2","rust"],"created_at":"2025-03-31T12:32:29.351Z","updated_at":"2025-05-07T18:09:21.589Z","avatar_url":"https://github.com/artemijan.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# L2Shablya ⚔️ 🇺🇦\n\n![Shablya](shablya.svg)\n\n*Inspired by the swift, light, and deadly Kozak weapon, L2Shablya embodies precision and speed in every line of code.*\n\n**Disclaimer**: *The name \"Shablya\" reflects the project's focus on performance and elegance, paying homage to the\niconic Kozak weapon. It is used here metaphorically and holds no association with real-world conflict or violence.*\n\nCurrent state: `Under development`\n\nAbout: This implementation is based on L2J, e.g. I reimplement everything in rust from java + I optimize things,\nlike DB denormalization for performance boost, removing unnecessary operations and so on.\n\n## Status\n\n- [![codecov](https://codecov.io/gh/artemijan/L2Shablya/branch/master/graph/badge.svg)](https://codecov.io/gh/artemijan/L2Shablya) \n- [![Builds and tests](https://github.com/artemijan/L2Shablya/actions/workflows/rust.yml/badge.svg)](https://github.com/artemijan/L2Shablya/actions/workflows/rust.yml)\n\nAlways remember \"Having tests opens doors to refactoring! More tests - more doors are open.\"\n\n\n## Ready features:\n\n- [x] Login server\n    - [x] Login process + auto create accounts\n    - [x] Game server registration\n    - [x] Kicking player\n    - [x] CMD login\n    - [ ] EBPF filtering of banned IPs\n- [x] Game server\n    - [x] register o login server\n    - [x] player packet encryption support (shifting key)\n    - [x] player can select game server\n    - [x] player can create char\n    - [x] player can delete char\n    - [x] player can restore char\n    - [x] player can select char\n    - [ ] player can enter the game world\n    - [ ] player can move\n    - [ ] player can select target\n    - [ ] player can send chat messages\n    - ..... a lot more\n\n## The client\n\n[Here](https://drive.google.com/file/d/1sXMoENX7YuhqKTYSjJN8RfHMgJ6Yeu6s/view?usp=share_link) is google drive link where\nyou can download client. In order to play, you have to change ip in L2.ini file.\n\n## Local deployment\n\n- create .env file\n\n```bash\nDATABASE_URL=sqlite://local.sqlite?mode=rwc\n```\n\n- install cargo and rust\n- install sea-orm-cli\n\n```bash\ncargo install sea-orm-cli\n```\n\n- run migrations\n\n```bash\nsea-orm-cli migrate up\n```\n\n- run login server\n\n```bahs\ncargo run -p login\n```\n\n- run game server\n\n```bash\ncargo run -p game\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartemijan%2Fl2shablya","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartemijan%2Fl2shablya","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartemijan%2Fl2shablya/lists"}