{"id":22903640,"url":"https://github.com/uniho/bebop","last_synced_at":"2025-04-01T07:24:47.217Z","repository":{"id":38234314,"uuid":"434037890","full_name":"uniho/BeBop","owner":"uniho","description":"BeBop framework is a development tool to create cross-platform desktop applications using JavaScript, HTML, and CSS.","archived":false,"fork":false,"pushed_at":"2022-07-02T00:35:30.000Z","size":740,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-07T04:41:28.884Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Pascal","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/uniho.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-02T01:06:45.000Z","updated_at":"2022-05-31T04:38:31.000Z","dependencies_parsed_at":"2022-08-29T02:41:15.184Z","dependency_job_id":null,"html_url":"https://github.com/uniho/BeBop","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uniho%2FBeBop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uniho%2FBeBop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uniho%2FBeBop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uniho%2FBeBop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uniho","download_url":"https://codeload.github.com/uniho/BeBop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246599240,"owners_count":20803166,"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":[],"created_at":"2024-12-14T02:38:05.533Z","updated_at":"2025-04-01T07:24:47.183Z","avatar_url":"https://github.com/uniho.png","language":"Pascal","readme":"# 🎧 BeBop framework\n\n## The Next Generation of `S+E+L+F` Development\n\nBeBop framework is a development tool to create cross-platform desktop applications using JavaScript, HTML, and CSS.\n\nYes, it is like [Electron](https://www.electronjs.org/), but based on [Lazarus](https://www.lazarus-ide.org/) and [FPC (Free Pascal Compiler)](https://www.freepascal.org/) instead of [Node.JS](https://nodejs.org/).\n\nNode.JS is a great library, but will you make things like air planes or motor vehicles?\nMore isn't always better, either for the customer or for the engineer.\nWe should cut our coat according to our cloth.\n\nBeBop framework aims at `S+E+L+F` development that means SIMPLE, EASY, LIGHT, and FAST.\n\nLazarus is a free cross-platform visual integrated development environment (IDE) for rapid application development (RAD) using FPC, and for a number of different platforms, including MacOS, Chromebook, Linux, and Windows.\n\nLazarus with FPC generate very fast small native binaries even though they provide an easy-to-use development, and thus it makes frontend engineers release from the many issues, including the excuse for legitimatery slacking off: \"My code's compiling.\"\n\n## 🎼 Get started\n\n### ♪ Windows 32bit / 64bit\n\n1. Download the latest version of BeBop framework from [Releases page in this repository](../../releases).\n   * You can take `bebop.exe` from `bebop-v1.x.x+x.x.x-win32.zip` or `bebop-v1.x.x+x.x.x-win64.zip`.\n   * Also, `bebop.cfg`, `bebop.ico` and some files put in `dogroot` directory from `sample-v1.x.x+x.x.x.zip`.\n1. Download the CEF binarie files from [CEF Automated Builds](https://cef-builds.spotifycdn.com/index.html).\n   * [For Windows 32bit](https://cef-builds.spotifycdn.com/index.html#windows32:103.0.8)\n   * [For Windows 64bit](https://cef-builds.spotifycdn.com/index.html#windows64:103.0.8)\n\n   Current supported CEF version is `103.0.8`, and \"Minimal\" type is recommended.\n  \n   If you cannot find it, click `Show All Builds` or `Show more builds` link at the bottom.\n1. Out of the CEF binarie files, we just need directories named `Release` and `Resources`. Other directories are unnessesary.\n1. Dive into directory named `Resources`. \n1. You will see 1 dir (named `locales`) and 4 files (`chrome_100_percent.pak`, `chrome_200_percent.pak`, `icudtl.dat`, and `resources.pak`). Copy these 5 items (1 dir + 4 files) into `Release` directory.\n1. `Resources` directory is no longer nessesary. `Release` directory left, which is the place you run the application on. Copy `bebop.exe`, `bebop.cfg`, `bebop.ico` and `dogroot` directory to the `Release` directory.\n1. Click the `bebop.exe`, and a new app will be your new best friend.\n\n### ♪ Linux 64bit\n\n1. Download the latest version of BeBop framework from [Releases page in this repository](../../releases).\n   * You can take `bebop` from `bebop-v1.x.x+x.x.x-linux64.zip`.\n   * Also, `bebop.cfg`, `bebop.ico` and some files put in `dogroot` directory from `sample-v1.x.x+x.x.x.zip`.\n1. Download the CEF binarie files from [CEF Automated Builds (Linux 64-bit)](https://cef-builds.spotifycdn.com/index.html#linux64:103.0.8).\n\n   Current supported CEF version is `103.0.8`, and \"Minimal\" type is recommended.\n  \n   If you cannot find it, click `Show All Builds` or `Show more builds` link at the bottom.\n1. Out of the CEF binarie files, we just need directories named `Release` and `Resources`. Other directories are unnessesary.\n1. Dive into directory named `Resources`. \n1. You will see 1 dir (named `locales`) and 4 files (`chrome_100_percent.pak`, `chrome_200_percent.pak`, `icudtl.dat`, and `resources.pak`). Copy these 5 items (1 dir + 4 files) into `Release` directory.\n1. `Resources` directory is no longer nessesary. `Release` directory left, which is the place you run the application on. Copy `bebop`, `bebop.cfg`, `bebop.ico` and `dogroot` directory to the `Release` directory.\n1. Click the `bebop`, and a new app will be your new best friend.\n\n\n### ♪ MacOS 64bit\n1. Download the latest version of BeBop framework from [Releases page in this repository](../../releases).\n   * You can take `bebop.app` from `bebop-v1.x.x+x.x.x-macosx64.zip`.\n   * Also, `bebop.cfg` and some files put in `dogroot` directory from `sample-v1.x.x+x.x.x.zip`.\n1. Put `bebop.app`, `bebop.cfg`, and `dogroot` directory into a same directory. (`bebop.app` is a kind of [bundle file](https://en.wikipedia.org/wiki/Bundle_(macOS)), so you can handle it like a directory.)\n\n```\n\u003cYour Dir\u003e\n  ├ \u003cdogroot\u003e\n  ├ \u003cbebop.app\u003e\n  └ bebop.cfg\n```\n\n3. Download the CEF binarie files from [CEF Automated Builds (MacOS 64-bit)](https://cef-builds.spotifycdn.com/index.html#macosx64:103.0.8).\n\n   Current supported CEF version is `103.0.8`, and \"Minimal\" type is recommended.\n  \n   If you cannot find it, click `Show All Builds` or `Show more builds` link at the bottom.\n1. Out of the CEF binarie files, we just need `/Release/Chromium Embedded Framework.framework` directory. Other directories are unnessesary.\n1. Copy `Chromium Embedded Framework.framework` directory into `bebop.app/Contents/Frameworks` directory. `bebop.app` is a kind of [bundle file](https://en.wikipedia.org/wiki/Bundle_(macOS)), so you can handle it like a directory.\n\n```\n\u003cbebop.app\u003e\n   └ \u003cContents\u003e\n       ├ \u003cFrameworks\u003e\n       │    ├ \u003cChromium Embedded Framework.framework\u003e 👈👈👈\n       │    │    ├ \u003cLibraries\u003e\n       │    │    │     └ ... \n       │    │    ├ \u003cResources\u003e\n       │    │    │     └ ... \n       │    │    └ Chromium Embedded Framework\n       │    ├ bebop Helper.app\n       │    ├ bebop Helper(GPU).app\n       │    ├ bebop Helper(Renderer).app\n       │    └ bebop Helper(Plugin).app\n       ├ \u003cMacOS\u003e\n       │    └ bebop\n       ├ \u003cResources\u003e\n       │    ├ 🔗\u003cdogroot\u003e\n       │    └ 🔗bebop.cfg\n       ├ info.plist\n       └ PkgInfo\n\n🔗:Symbolic Link\n```\n\nYour Directory again.\n```\n\u003cYour Dir\u003e\n  ├ \u003cdogroot\u003e\n  ├ \u003cbebop.app\u003e\n  └ bebop.cfg\n```\n\n6. Click the `bebop.app` then a new app will be your new best friend.\n\n### ♪ Chromebook\nCOMING SOON MAYBE. Any help is welcome.\n\n## 👶 First steps\nSee samples `.html` and `.js` source codes put in `dogroot` directory.\n`index.html` is the beginning of everything.\n\nIf you have built websites with JavaScript / HTML / CSS, and desktop applications with C++ / C# / Delphi / VB / etc., you should be able to create new desktop applications soon.\n\nDefault key mappings:\n* `F5` Reload current html page.\n* `F12` Show the Developer's Tool.\n* `Backspace` Go back page.\n\nThese samples use [ReactJS](https://reactjs.org/), but you don't really need it.\nYou can use your favorite JS framework - [jQuery](https://jquery.com/), [AngularJS](https://angularjs.org/), [VueJS](https://vuejs.org/), [SolidJS](https://www.solidjs.com/), etc., or even just pure vanilla JavaScript.\n\nFurther documents are in the `/docs` directory.\n\n## 🚀 Next steps\nYou can create your own native modules and in-process REST API. See source files, `/source/unit_mod_xxxxx.pas` and `/source/unit_rest_xxxxx.pas`. \n1. Clone this repository. Don't forget to update submodules.\n1. Download the Lazarus IDE.\n1. Run Lazarus IDE.\n1. Click `Project` -\u003e `Open Project`, and select `/source/bebop.lpi`\n1. Click `Run` -\u003e `Build`\n\n## 🤔 Simple? Easy?\nBeBop is a development tool for general desktop applications. Unlike a kind of system batch process in the cool black window, we have to create an application with the user-friendly interface for our users.  \nThe user-friendly interface needs asyncronus process no lagging, so you need to figure the `Promise` in JavaScript out.\nYOU CAN DO IT! \n\n## 🛺 Light? Fast?\n[Lazarus](https://www.lazarus-ide.org/) and [FPC (Free Pascal Compiler)](https://www.freepascal.org/) can build native binaries without depending on any runtime environment (Though the Linux family OS needs GTK or QT framework, they are almost a part of their OS Systems). \nAs it is known, FPC can even link object files of C langauge.\n\n## 🌱 Ecosystem\n\n### ♪ Chromium Embedded Framework (CEF)\nBeBop framework gets power from CEF (Chromium Embedded Framework).\n\n[CEF (Chromium Embedded Framework)](https://bitbucket.org/chromiumembedded/cefhttps://bitbucket.org/chromiumembedded/cef) is a simple framework for embedding Chromium-based browsers in other applications.\nUnlike the [Chromium project](https://www.chromium.org/) itself, which focuses mainly on Google Chrome application development, CEF focuses on facilitating embedded browser use cases in third-party applications.\n\n### ♪ salvadordf / CEF4Delphi\nBeBop framework gets power from CEF through CEF4Delphi.\n\n[CEF4Delphi](https://github.com/salvadordf/CEF4Delphi) is an open source project to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC for Windows, Linux and MacOS.\n\n### ♪ synopse / mORMot\n\nBeBop framework has a powerful in-process REST API based on mORMot.\n\n[mORMot](https://github.com/synopse/mORMot) is an Open Source Client-Server Object-relational mapping (ORM) / Service-Oriented Architecture (SOA) / Model-View-Controller (MVC) framework for Delphi and Lazarus/FPC, targeting Windows/Linux for servers, and any platform for clients.\n\nmORMot is a huge library / framework, but FPC links just the necessary part.\n\n### ♪ Lazarus and FPC\nWe are using below.\n\n#### Windows (win32/win64)\nLazarus 2.2.2 + FPC 3.2.2\n\n#### Linux (x86_64-linux-gtk2)\nLazarus 2.2.2 + FPC 3.2.2\n  \n#### MacOS (x86_64-darwin-cocoa)\nLazarus 2.2.2 + FPC 3.2.2\n\n\n## 🎵 Code of conduct\nThis project is learning from [The Rust's Code of conduct](https://www.rust-lang.org/policies/code-of-conduct):\n* We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.\n* Please avoid using overtly sexual aliases or other nicknames that might detract from a friendly, safe and welcoming environment for all.\n* Please be kind and courteous. There’s no need to be mean or rude.\n* Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer.\n* Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works.\n* We will exclude you from interaction if you insult, demean or harass anyone. That is not welcome behavior. We interpret the term “harassment” as including the definition in the Citizen Code of Conduct; if you have any lack of clarity about what might be included in that concept, please read their definition. In particular, we don’t tolerate behavior that excludes people in socially marginalized groups.\n* Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact one of the channel ops or any of the Rust moderation team immediately. Whether you’re a regular contributor or a newcomer, we care about making this community a safe place for you and we’ve got your back.\n* Likewise any spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome.\n\n## 👏 Contribution\n### ♪ By PR (Pull Request)\nFeel free to open a pull-request.\n### ♪ As a Coraborater\nCoraboraters are welcome!\n### ♪ As a Supporter\n😻I like beers🍺\n\n## 📝 Licence\nThe MIT License.\n\nYou should check the license of Lazarus, FPC, Cef4Delphi, mORMot, and CEF.  \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funiho%2Fbebop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funiho%2Fbebop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funiho%2Fbebop/lists"}