LICENSE, README, and initial editor stuff
This commit is contained in:
+117
@@ -0,0 +1,117 @@
|
||||
# AUTOGENERATED COPYRIGHT HEADER START
|
||||
# Copyright (C) 2018-2023 Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
|
||||
# AUTOGENERATED COPYRIGHT HEADER END
|
||||
|
||||
# Basic Formatting
|
||||
TabWidth: 4
|
||||
UseTab: ForContinuationAndIndentation
|
||||
ColumnLimit: 0
|
||||
#- 0 does not respect the original line breaks!
|
||||
|
||||
# Language
|
||||
Language: Cpp
|
||||
Standard: c++17
|
||||
|
||||
# Indentation
|
||||
AccessModifierOffset: 0
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
IndentCaseLabels: false
|
||||
#IndentPPDirectives: true
|
||||
IndentWidth: 4
|
||||
IndentWrappedFunctionNames: true
|
||||
NamespaceIndentation: All
|
||||
|
||||
# Includes
|
||||
#IncludeBlocks: Regroup
|
||||
IncludeCategories:
|
||||
- Regex: '^"warning-disable.hpp"$'
|
||||
Priority: 50
|
||||
- Regex: '^(<|")(config.hpp|common.hpp|ui-common.hpp|strings.hpp|version.hpp|obs.h)("|>)'
|
||||
Priority: 100
|
||||
- Regex: '^<obs-'
|
||||
Priority: 150
|
||||
- Regex: '^<'
|
||||
Priority: 200
|
||||
- Regex: '^<Q'
|
||||
Priority: 250
|
||||
- Regex: '^"'
|
||||
Priority: 300
|
||||
- Regex: '.moc"$'
|
||||
Priority: 300
|
||||
- Regex: '^"warning-enable.hpp"$'
|
||||
Priority: 500
|
||||
SortIncludes: true
|
||||
|
||||
# Alignment
|
||||
AlignAfterOpenBracket: true
|
||||
AlignConsecutiveAssignments: true
|
||||
AlignConsecutiveDeclarations: true
|
||||
AlignEscapedNewlines: Left
|
||||
AlignOperands: true
|
||||
AlignTrailingComments: false
|
||||
AlignArrayOfStructures: Right
|
||||
DerivePointerAlignment: false
|
||||
PointerAlignment: Left
|
||||
|
||||
# Wrapping and Breaking
|
||||
AllowAllParametersOfDeclarationOnNextLine: true
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: Empty
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: true
|
||||
AlwaysBreakTemplateDeclarations: true
|
||||
BraceWrapping:
|
||||
AfterClass: false
|
||||
AfterControlStatement: false
|
||||
AfterEnum: false
|
||||
# AfterExternBlock: false
|
||||
AfterFunction: true
|
||||
AfterNamespace: false
|
||||
AfterStruct: false
|
||||
AfterUnion: false
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
SplitEmptyFunction: false
|
||||
SplitEmptyRecord: false
|
||||
SplitEmptyNamespace: false
|
||||
BinPackArguments: true
|
||||
BinPackParameters: true
|
||||
BreakBeforeBinaryOperators: NonAssignment
|
||||
BreakBeforeBraces: Custom
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializers: BeforeColon
|
||||
#BreakInheritanceList: BeforeColon
|
||||
BreakStringLiterals: true
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||
Cpp11BracedListStyle: true
|
||||
|
||||
# Spaces
|
||||
SpaceAfterCStyleCast: false
|
||||
SpaceAfterTemplateKeyword: false
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
#SpaceBeforeCpp11BracedList: false
|
||||
#SpaceBeforeCtorInitializerColon: true
|
||||
#SpaceBeforeInheritanceColon: true
|
||||
SpaceBeforeParens: ControlStatements
|
||||
#SpaceBeforeRangeBasedForLoopColon: true
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 1
|
||||
SpacesInAngles: false
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInContainerLiterals: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
|
||||
# Other
|
||||
CommentPragmas: '^(!FIXME!|!TODO!|ToDo:)'
|
||||
CompactNamespaces: false
|
||||
DisableFormat: false
|
||||
FixNamespaceComments: true
|
||||
#ForEachMacros: ''
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
ReflowComments: false
|
||||
SortUsingDeclarations: true
|
||||
@@ -0,0 +1,21 @@
|
||||
# AUTOGENERATED COPYRIGHT HEADER START
|
||||
# Copyright (C) 2017-2024 Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
|
||||
# AUTOGENERATED COPYRIGHT HEADER END
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file.
|
||||
[*]
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
charset = utf-8
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.yml]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
@@ -0,0 +1,2 @@
|
||||
/venv
|
||||
/build
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
# License
|
||||
Copyright 2025-2026 Narta Xaymar Dirks <info@xaymar.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
## Third Party Projects & Licenses
|
||||
| Project | Copyright (c) | License |
|
||||
|---|---|---|
|
||||
| boost::asio (WebSocket++) | | Boost Software License - Version 1.0 |
|
||||
| libpqxx | 2000-2026 Jeroen T. Vermeulen | [3-Clause BSD License](https://github.com/jtv/libpqxx/blob/master/COPYING) |
|
||||
| nlohmann::json | 2013-2026 Niels Lohmann | [MIT License](https://github.com/nlohmann/json/blob/develop/LICENSE.MIT) |
|
||||
| WebSocket++ | 2014 Peter Thorson | [Modified 3-Clause BSD License](https://github.com/zaphoyd/websocketpp/blob/master/COPYING) |
|
||||
|
||||
### Notes
|
||||
- We've applied the ASIO compatibility patches to WebSocket++ in order to use the newest versions.
|
||||
@@ -0,0 +1,22 @@
|
||||
# Archipelago Room Server
|
||||
A room server implementation for the multiworld randomizer Archipelago.
|
||||
|
||||
Licensed under 3-Clause BSD License. For more information see COPYING.md
|
||||
|
||||
## Design
|
||||
Some brainstorming about what needs to be done.
|
||||
|
||||
### Basics
|
||||
In the ideal case there is one room server per machine that handles all rooms and users that connect to that machine. It'd also be nice if it could be controlled via WebSocket as well either locally or remotely.
|
||||
|
||||
## Frequently Asked Questions (FAQ)
|
||||
*All the questions that were asked or would be asked frequently.*
|
||||
|
||||
### Why rewrite the room server in a different programming language?
|
||||
While Python is quite nice when it comes to ease of use and how quickly you can get something off the ground it suffers from significant performance issues. Some of them can be reduced with CPython or similar but you can never fully get rid of them entirely. This is the case for most if not all higher level languages that either need an intermediate representation or are compiled at runtime (JIT).
|
||||
|
||||
Lower level languages tend to avoid this by shifting the heavy lifting to a compile and link step resulting in much faster execution. However they're harder to work with and any issues that occur during runtime tend to be unrecoverable. Technically Rust is "safer" to write this in but I have a personal hatred for Rust's awful inconsistent syntax and rules.
|
||||
|
||||
### Isn't uWebSockets faster than WebSocket++?
|
||||
Maybe? There aren't any proper benchmarks out there for this kind of stuff. Most of the benchmarks tend to be tied to databases which will be end up being the bottleneck. I just picked what integrates with C++ more.
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
||||
Reference in New Issue
Block a user