{"id":51320331,"url":"https://github.com/arcelyth/aitne","last_synced_at":"2026-07-01T13:00:15.594Z","repository":{"id":361576830,"uuid":"1253593281","full_name":"Arcelyth/aitne","owner":"Arcelyth","description":"A lightweight and high-performance reactive web framework.","archived":false,"fork":false,"pushed_at":"2026-06-27T11:33:52.000Z","size":245,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-27T13:13:21.066Z","etag":null,"topics":["compiler","fine-grained","frontend","html","jsx","moonbit","reactive","templating","web"],"latest_commit_sha":null,"homepage":"","language":"MoonBit","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/Arcelyth.png","metadata":{"files":{"readme":"README.mbt.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":"2026-05-29T16:12:12.000Z","updated_at":"2026-06-27T11:33:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Arcelyth/aitne","commit_stats":null,"previous_names":["arcelyth/aitne"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Arcelyth/aitne","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arcelyth%2Faitne","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arcelyth%2Faitne/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arcelyth%2Faitne/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arcelyth%2Faitne/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Arcelyth","download_url":"https://codeload.github.com/Arcelyth/aitne/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arcelyth%2Faitne/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35007278,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"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":["compiler","fine-grained","frontend","html","jsx","moonbit","reactive","templating","web"],"created_at":"2026-07-01T13:00:14.936Z","updated_at":"2026-07-01T13:00:15.549Z","avatar_url":"https://github.com/Arcelyth.png","language":"MoonBit","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aitne\n\nA lightweight and high-performance web framework with fine-grained reactivity. Inspired by [leptos](https://github.com/leptos-rs/leptos) and [solidjs](https://github.com/solidjs/solid). Support MBX (JSX-like) format to develop.\n\n## Examples\n\nTodo list: \n```moonbit\n///|\nusing @dom {\n  trait View,\n  div,\n  h1,\n  button,\n  text,\n  input,\n  ul,\n  li,\n  for_node,\n  text_dyn,\n}\n\n///|\nusing @ffi {event_target_value}\n\n///|\nfn todo_app() -\u003e \u0026View {\n  let (input_val, set_input_val) = @reactive.create_signal(\"\")\n  let (todo, set_todo) = @reactive.create_signal([\"Example.\"])\n\n  let add_item = _ =\u003e {\n    let text = input_val.get()\n    if text != \"\" {\n      set_todo.set(todo.get() + [text])\n    }\n    set_input_val.set(\"\")\n  }\n\n  let remove_item = item =\u003e {\n    let new_list = todo.get().filter(fn(t) { t != item })\n    set_todo.set(new_list)\n  }\n\n  div().children([\n    h1().children([text(\"Todo List\")]),\n    div().children([text_dyn(fn() { todo.get().length().to_string() })]),\n    div().children([\n      input()\n      .attr(\"type\", \"text\")\n      .value(input_val)\n      .on(Input, ev =\u003e set_input_val.set(event_target_value(ev))),\n      button().on(Click, add_item).children([text(\"Add\")]),\n    ]),\n    ul().children([\n      for_node(() =\u003e todo.get(), item =\u003e { return item }, item =\u003e {\n        li().children([\n          text(item),\n          button().on(Click, _ =\u003e remove_item(item)).children([text(\"Delete\")]),\n        ])\n      }),\n    ]),\n  ])\n}\n```\n\n## MBX Format (JSX-like)\n \\[*Experimental*\\]\n\nSimple router usage in MBX format:\n```mbx\n///|\npub fn app() -\u003e \u0026View {\n  \u003cRouter base=\"/\"\u003e\n    \u003cRoutes fallback={() =\u003e \u003cNotFound /\u003e}\u003e\n        \u003cRoute path=\"/\" view={() =\u003e \u003cHome /\u003e} /\u003e\n        \u003cParentRoute \n            path=\"/users\" \n            view={() =\u003e \u003cUsersPage /\u003e}\u003e \n           \u003cRoute path=\"/:id\" view={() =\u003e \u003cUserDetailPage /\u003e}/\u003e \n        \u003c/ParentRoute\u003e\n        \u003cParentRoute \n            path=\"/t\"\n            view={() =\u003e \u003cTryPage /\u003e}\u003e \n           \u003cRoute path=\"/t1\" view={() =\u003e \u003cTryPage /\u003e} /\u003e \n        \u003c/ParentRoute\u003e\n    \u003c/Routes\u003e\n  \u003c/Router\u003e\n}\n\n///|\nfn main {\n  let _ = @dom.mount_to_body(() =\u003e \u003cApp /\u003e)\n}\n```\n\n## Eirene\n\nEirene is a simple web server built in MoonBit, specifically designed to serve static assets and handle Single Page Application (SPA) routing fallbacks for the Aitne ecosystem. \u003cbr\u003e\nAn example 'eirene.toml' config file:\n```toml\n[app]\nname = \"examples\"\nmode = \"development\"\nentry_html = \"index.html\"\n\n[build]\ntarget = \"js\"\nsrc_dir = \"src\"\nout_dir = \".\"\n\n[server]\nhost = \"127.0.0.1\"\nport = 8000\n```\n\n## CLI Tool\n\nRun `aitne -h` to see the usage.\n\n*This library still work in progress, not production ready!*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcelyth%2Faitne","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farcelyth%2Faitne","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcelyth%2Faitne/lists"}