Hi @Worldcpu,
I'm the author of BravoFinder (https://github.com/Bokjan/BravoFinder), a C++ flight-route engine. First off — thank you for the work you've put into Pyxis, and for the several places across the codebase where comments already note "Reference from bravofinder". That mutual acknowledgment of derivation is exactly what I'd hope for, and it's the reason I'm opening this as a friendly attribution question rather than anything more confrontational.
This is not a plagiarism accusation and not a request to stop using or to remove any code. It's a narrow MIT license-compliance issue: the upstream copyright and permission notices required by the MIT license appear to be missing from the BravoFinder-derived portions of Pyxis. I'm hoping we can sort it out quickly and amicably.
One housekeeping note: I couldn't find an email or other private contact for you, so I'm raising this here as an issue. I'd have preferred a quieter channel if one were available — if you'd rather take this offline, you can reach me via the email listed on my GitHub profile, or just reply here with a way to contact you.
What I observed
I compared Pyxis (master, commit 0f0f8f9, checked on 2026-07-26) against BravoFinder. Two things stood out:
1. Documentation appears to be copied near-verbatim from BravoFinder's docs/.
doc/BravoFinder/ contains 13 files that share names with BravoFinder's docs/, with very high content similarity (reproducible with Python's difflib.SequenceMatcher on splitlines()):
Pyxis doc/BravoFinder/ |
BravoFinder docs/ |
Similarity |
domain-design.zh-CN.md |
domain-design.zh-CN.md |
~0.99 |
performance.zh-CN.md |
performance.zh-CN.md |
~0.99 |
binary-cache.zh-CN.md |
binary-cache.zh-CN.md |
~0.96 |
README.md |
README.md |
~0.89 |
These docs have always been MIT-licensed in BravoFinder. I couldn't find a BravoFinder copyright notice or MIT notice retained in the Pyxis copies.
2. Source comments reference BravoFinder by the pre-relicense (MIT-era) paths.
A few representative examples, quoted verbatim from Pyxis:
tests/cpp/bravo_yen.h: // bravofinder yen_kshortest.cc 的直接移植——CostOfPath + SelectEdge 方案。
lib/module/navdata/bfdb/byte_io.h: // 参考:bravofinder/lib/io/cache/byte_io.h
lib/module/navdata/bfdb/bfdb_container.h: // 参考:bravofinder/lib/io/cache/unified_cache.h
The paths lib/io/... and lib/core/... are BravoFinder's pre-relicense layout (before the engine was relicensed to LGPL-3.0-or-later). So the derived portions trace back to BravoFinder's MIT-era code, and the MIT license applies to them.
Some open-source licensing basics (in case any of this is useful)
Feel free to skip this section if you already know it — I'm including it just in case, since license mechanics aren't something everyone runs into early on. None of this is meant to talk down; it's here so the rest of the issue is easy to follow.
Copyright is automatic; a license is the permission to use. When someone writes code, they hold copyright by default — "all rights reserved." A license is the set of permissions the creator grants so others can use, copy, or build on it. "Open source" means those permissions are granted under terms that meet certain criteria, but they're still terms, not "no rules."
Two broad families of open-source license:
- Permissive (MIT, BSD, Apache) — let you use, modify, and even ship commercially, with minimal conditions (usually: keep the copyright + license notice). MIT is in this family.
- Copyleft (GPL, LGPL, AGPL) — also let you use and modify, but require that derivative works stay under a compatible open license, so the openness propagates downstream.
MIT specifically is about the most permissive license out there. It lets anyone use, copy, modify, and sell the code, free of charge. There's basically one condition: keep the original copyright notice and the license text in the copy. A "derivative work" — a copy, a translation, a rewrite, or docs carried over — inherits that rule.
Attribution that satisfies MIT ≠ a source comment. A line like // 参考 bravofinder is friendly and good practice, but it doesn't by itself meet the MIT condition. What meets it is the actual Copyright (c) 2026 Boyin Chen line (and the MIT notice) appearing where the copy/derivative lives — typically in the LICENSE/LICENSE.MIT file and/or a NOTICE file. That's the "deal" of MIT: nearly total freedom, in exchange for keeping the author's name attached. It's not about money or blocking anyone.
Community norm: respecting upstream licenses and keeping attribution is the basic etiquette that lets the whole open-source system keep working. Most attribution gaps are honest oversights and get resolved with a quick fix once raised — that's all I'm hoping for here.
One pitfall worth knowing: if code or docs in a repo arrived via an AI assistant, the output can sometimes reproduce existing open-source material — and as the person publishing the repo, you're responsible for meeting the licenses of whatever ends up in it. It's a good habit to audit what's there and make sure each upstream's conditions are met. (This is a general trap that's bitten a lot of people lately, not something I'm singling you out for.)
The MIT requirement
The MIT license states:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
BravoFinder's MIT notice is Copyright (c) 2026 Boyin Chen. Pyxis's LICENSE.MIT currently reads only Copyright (c) 2026 Worldcpu, with no upstream BravoFinder notice, and the derived files / copied docs don't carry it either. That's the gap I'm asking about.
To be clear on scope: BravoFinder's engine is now LGPL-3.0-or-later, but the derivation documented above traces to the MIT-era code, so this issue is only about the MIT attribution — it does not raise any LGPL concern.
What I'm asking for
MIT freely allows derivation, modification, and commercial use — I'm not asking you to stop using anything, to remove any code, or for any payment. I'd just like the upstream notices restored. Concretely:
LICENSE.MIT — add the upstream copyright alongside your own, e.g.:
Copyright (c) 2026 Boyin Chen (BravoFinder)
Copyright (c) 2026 Worldcpu
doc/BravoFinder/ — add a short NOTICE (or a line in the directory's README) stating that the docs are derived from BravoFinder's docs/ under the MIT license, retaining the Copyright (c) 2026 Boyin Chen notice.
If it would help, I'm happy to put together a per-file mapping of derived files to their BravoFinder sources so the attribution can be precise.
A forward-looking note on the current (LGPL) engine — only if you want to keep referencing it
This is separate from the MIT attribution above and is not a demand. I'm mentioning it only so there's no surprise later.
What LGPL is, briefly: LGPL (Lesser GPL) is a copyleft license. Unlike MIT, it requires that (a) the licensed files keep their copyright notice, SPDX header, and the LGPL license text, and (b) if you modify the LGPL library itself and distribute it, those modifications must be available under LGPL so users can relink against a modified version. It does not force your whole project to become LGPL — non-derived app code around it can stay under its own license (e.g., MIT). That's the "Lesser" part: a library can be used by non-copyleft apps without "infecting" them, as long as the library itself stays open.
Since commit 78f9d12, BravoFinder's engine (libs/engine/) is LGPL-3.0-or-later. The MIT-era derivation covered by this issue is unaffected. But if you'd like to continue referencing or pulling from the current engine code, the LGPL would then apply to those portions. Conveniently, your lib/module/router/ and lib/module/flightplan/ modules are already LGPL-licensed, so such code would fit there naturally. At a source level that mainly means:
- Retain the
// SPDX-License-Identifier: LGPL-3.0-or-later header and the copyright notice on those files.
- Keep the LGPL license text (
LICENSE.LGPLv3) alongside them.
- If you modify and distribute the LGPL engine code itself, the modifications to that engine portion must be available under LGPL so recipients can relink a modified engine.
To be explicit: I am not asserting that any current Pyxis file already derives from post-78f9d12 LGPL code — the evidence I've seen points to the older MIT-era paths. This is purely forward-looking. If you're ever unsure whether a given file traces to MIT-era or LGPL-era code, I'm glad to help figure it out together.
Timeline
Could you let me know within roughly one week (by 2026-08-02) whether you're able to add the notices, or if you have concerns about any specific part? If the notices are restored, I'll consider this fully resolved and won't pursue it further.
Thanks for your time and for considering this — I'd genuinely prefer to sort it out directly with you.
Best,
Boyin Chen
(email listed on my profile if you'd prefer to reply privately)
Hi @Worldcpu,
I'm the author of BravoFinder (https://github.com/Bokjan/BravoFinder), a C++ flight-route engine. First off — thank you for the work you've put into Pyxis, and for the several places across the codebase where comments already note "Reference from bravofinder". That mutual acknowledgment of derivation is exactly what I'd hope for, and it's the reason I'm opening this as a friendly attribution question rather than anything more confrontational.
This is not a plagiarism accusation and not a request to stop using or to remove any code. It's a narrow MIT license-compliance issue: the upstream copyright and permission notices required by the MIT license appear to be missing from the BravoFinder-derived portions of Pyxis. I'm hoping we can sort it out quickly and amicably.
One housekeeping note: I couldn't find an email or other private contact for you, so I'm raising this here as an issue. I'd have preferred a quieter channel if one were available — if you'd rather take this offline, you can reach me via the email listed on my GitHub profile, or just reply here with a way to contact you.
What I observed
I compared Pyxis (master, commit
0f0f8f9, checked on 2026-07-26) against BravoFinder. Two things stood out:1. Documentation appears to be copied near-verbatim from BravoFinder's
docs/.doc/BravoFinder/contains 13 files that share names with BravoFinder'sdocs/, with very high content similarity (reproducible with Python'sdifflib.SequenceMatcheronsplitlines()):doc/BravoFinder/docs/domain-design.zh-CN.mddomain-design.zh-CN.mdperformance.zh-CN.mdperformance.zh-CN.mdbinary-cache.zh-CN.mdbinary-cache.zh-CN.mdREADME.mdREADME.mdThese docs have always been MIT-licensed in BravoFinder. I couldn't find a BravoFinder copyright notice or MIT notice retained in the Pyxis copies.
2. Source comments reference BravoFinder by the pre-relicense (MIT-era) paths.
A few representative examples, quoted verbatim from Pyxis:
tests/cpp/bravo_yen.h:// bravofinder yen_kshortest.cc 的直接移植——CostOfPath + SelectEdge 方案。lib/module/navdata/bfdb/byte_io.h:// 参考:bravofinder/lib/io/cache/byte_io.hlib/module/navdata/bfdb/bfdb_container.h:// 参考:bravofinder/lib/io/cache/unified_cache.hThe paths
lib/io/...andlib/core/...are BravoFinder's pre-relicense layout (before the engine was relicensed to LGPL-3.0-or-later). So the derived portions trace back to BravoFinder's MIT-era code, and the MIT license applies to them.Some open-source licensing basics (in case any of this is useful)
Feel free to skip this section if you already know it — I'm including it just in case, since license mechanics aren't something everyone runs into early on. None of this is meant to talk down; it's here so the rest of the issue is easy to follow.
Copyright is automatic; a license is the permission to use. When someone writes code, they hold copyright by default — "all rights reserved." A license is the set of permissions the creator grants so others can use, copy, or build on it. "Open source" means those permissions are granted under terms that meet certain criteria, but they're still terms, not "no rules."
Two broad families of open-source license:
MIT specifically is about the most permissive license out there. It lets anyone use, copy, modify, and sell the code, free of charge. There's basically one condition: keep the original copyright notice and the license text in the copy. A "derivative work" — a copy, a translation, a rewrite, or docs carried over — inherits that rule.
Attribution that satisfies MIT ≠ a source comment. A line like
// 参考 bravofinderis friendly and good practice, but it doesn't by itself meet the MIT condition. What meets it is the actualCopyright (c) 2026 Boyin Chenline (and the MIT notice) appearing where the copy/derivative lives — typically in theLICENSE/LICENSE.MITfile and/or aNOTICEfile. That's the "deal" of MIT: nearly total freedom, in exchange for keeping the author's name attached. It's not about money or blocking anyone.Community norm: respecting upstream licenses and keeping attribution is the basic etiquette that lets the whole open-source system keep working. Most attribution gaps are honest oversights and get resolved with a quick fix once raised — that's all I'm hoping for here.
One pitfall worth knowing: if code or docs in a repo arrived via an AI assistant, the output can sometimes reproduce existing open-source material — and as the person publishing the repo, you're responsible for meeting the licenses of whatever ends up in it. It's a good habit to audit what's there and make sure each upstream's conditions are met. (This is a general trap that's bitten a lot of people lately, not something I'm singling you out for.)
The MIT requirement
The MIT license states:
BravoFinder's MIT notice is
Copyright (c) 2026 Boyin Chen. Pyxis'sLICENSE.MITcurrently reads onlyCopyright (c) 2026 Worldcpu, with no upstream BravoFinder notice, and the derived files / copied docs don't carry it either. That's the gap I'm asking about.To be clear on scope: BravoFinder's engine is now LGPL-3.0-or-later, but the derivation documented above traces to the MIT-era code, so this issue is only about the MIT attribution — it does not raise any LGPL concern.
What I'm asking for
MIT freely allows derivation, modification, and commercial use — I'm not asking you to stop using anything, to remove any code, or for any payment. I'd just like the upstream notices restored. Concretely:
LICENSE.MIT— add the upstream copyright alongside your own, e.g.:doc/BravoFinder/— add a shortNOTICE(or a line in the directory's README) stating that the docs are derived from BravoFinder'sdocs/under the MIT license, retaining theCopyright (c) 2026 Boyin Chennotice.If it would help, I'm happy to put together a per-file mapping of derived files to their BravoFinder sources so the attribution can be precise.
A forward-looking note on the current (LGPL) engine — only if you want to keep referencing it
This is separate from the MIT attribution above and is not a demand. I'm mentioning it only so there's no surprise later.
What LGPL is, briefly: LGPL (Lesser GPL) is a copyleft license. Unlike MIT, it requires that (a) the licensed files keep their copyright notice, SPDX header, and the LGPL license text, and (b) if you modify the LGPL library itself and distribute it, those modifications must be available under LGPL so users can relink against a modified version. It does not force your whole project to become LGPL — non-derived app code around it can stay under its own license (e.g., MIT). That's the "Lesser" part: a library can be used by non-copyleft apps without "infecting" them, as long as the library itself stays open.
Since commit
78f9d12, BravoFinder's engine (libs/engine/) is LGPL-3.0-or-later. The MIT-era derivation covered by this issue is unaffected. But if you'd like to continue referencing or pulling from the current engine code, the LGPL would then apply to those portions. Conveniently, yourlib/module/router/andlib/module/flightplan/modules are already LGPL-licensed, so such code would fit there naturally. At a source level that mainly means:// SPDX-License-Identifier: LGPL-3.0-or-laterheader and the copyright notice on those files.LICENSE.LGPLv3) alongside them.To be explicit: I am not asserting that any current Pyxis file already derives from post-
78f9d12LGPL code — the evidence I've seen points to the older MIT-era paths. This is purely forward-looking. If you're ever unsure whether a given file traces to MIT-era or LGPL-era code, I'm glad to help figure it out together.Timeline
Could you let me know within roughly one week (by 2026-08-02) whether you're able to add the notices, or if you have concerns about any specific part? If the notices are restored, I'll consider this fully resolved and won't pursue it further.
Thanks for your time and for considering this — I'd genuinely prefer to sort it out directly with you.
Best,
Boyin Chen
(email listed on my profile if you'd prefer to reply privately)